c - 尝试使用循环读取 n 个图像时出错?

标签 c

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 张图像。 如何解决这个问题?

最佳答案

尚未为filenameframe_id分配内存。在存储字符串之前使用 malloc 分配内存或calloc 。或者只是将它们声明为静态数组。

char filename[256]="";
char frame_id[256] = "";

关于c - 尝试使用循环读取 n 个图像时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14543385/

相关文章:

c - 引用 C#define 从运行时参数

c - c中scanf(%100s)是什么意思

c - 在服务器上远程执行自定义命令 c windows

c - 将可分配数组从 fortran 传递到 C 并对其进行 malloc

c++ - 如何计算读取文件时的百分比?

c - 我们如何限制用户在 C 中输入字符和大于指定长度的整数?

c - 如何将 "clicked"信号和 "key_press_event"连接到同一个回调函数?

c - 在文本文件中搜索字符串并将其复制到另一个文件

c# - PInvoke - 试图读取或写入 protected 内存。这通常表明其他内存已损坏

c - Linux 系统调用中 fcntl 中 F_DUPFD 的用法是什么