我尝试使用 gcc 编译器运行以下程序来输出 bmp 文件,但它显示错误:段错误(核心转储)。我努力解决这个问题,但没有改变任何事情。 另外,我想知道打开新的 bmp 图像时会发生什么错误。 文件 *infile;
FILE *outfile;
BITMAPFILEHEADER hf;
BITMAPINFOHEADER hInfo;
RGBQUAD hRGBpal[256];
请您参考如下方法:
您正在读取未分配的指针
fread(&hf, sizeof(BITMAPFILEHEADER),1,infile);
fread(&hInfo,sizeof(BITMAPINFOHEADER),1,infile);
读入这些指针时,您需要为其分配内存
编辑:如果您打算读取使用 malloc 分配的指针,则需要从读取中删除 &
,因为 &hf 将占用指针变量 hf 的地址,而不是在其中分配的内存地址
否则,正如 @user0042 提到的,只需将它们声明为变量而不是指针,这样就不需要为它们分配内存