我尝试使用 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 提到的,只需将它们声明为变量而不是指针,这样就不需要为它们分配内存


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!