Linux上的C中的分段错误(核心转储)错误

时间:2017-08-17 06:00:36

标签: linux

我尝试使用gcc编译器运行以下程序来输出bmp文件,但它显示错误:segment fault(core dumped)。我努力解决这个问题,但它没有改变任何东西。 此外,我想知道打开新的bmp图像时出现错误的任何错误。 FILE * infile;

FILE             *outfile;

BITMAPFILEHEADER  hf;          
BITMAPINFOHEADER  hInfo;       
RGBQUAD           hRGBpal[256]; 

1 个答案:

答案 0 :(得分:3)

您正在阅读未分配的指针

fread(&hf, sizeof(BITMAPFILEHEADER),1,infile);
fread(&hInfo,sizeof(BITMAPINFOHEADER),1,infile);

读入这些指针时需要为这些指针分配内存

编辑:如果您打算读取使用malloc分配的指针,则需要从读取中删除&,因为& hf将占用指针变量的地址hf而不是其中分配的内存地址

否则提到@ user0042只是将它们声明为变量而不是指针,这样就不需要为它们分配内存了