-2
void main() {
int frame_number = 0;
do {
    char *filename = "";
    strcpy(filename, "frame_");
    char *frame_id = "";
    itoa(frame_number, frame_id, 10);
    strcat(filename, frame_id);
    strcat(filename, ".bmp");

    FILE* f  = fopen(filename, "rb");
    if (!f) {
        printf("Could not read!");
        system("Pause");
    }
    else
        printf("Read!");
    fclose(f);
    frame_number++;
} while (frame_number < 20);
}

これを実行するたびに、access violation writing location!!!のエラーが発生します フォルダには約40枚の画像があります。これを解決するには?

4

1 に答える 1

1

とにメモリが割り当てられていませfilenameframe_idmallocまたはcallocを使用して、文字列を格納する前にメモリを割り当てます。または、それらを静的配列として宣言するだけです。

char filename[256]="";
char frame_id[256] = "";
于 2013-01-27T01:06:00.077 に答える