gpt4 book ai didi

c - 代码中的 fread() 函数有问题

转载 作者:太空宇宙 更新时间:2023-11-04 00:07:34 24 4
gpt4 key购买 nike

我用 C 编写了一个程序来打开位图图像并保存图像的尺寸。我在编写 fread() 函数时遇到了一些问题。请告诉我我编写的代码中函数的正确格式应该是什么。

这里我使用了指针数组,因为我必须打开多个位图图像。

#include<conio.h>
#include<stdio.h>
#include<stdlib.h>


void fskip(FILE *fp, int num_bytes)
{
int i;
for (i=0; i<num_bytes; i++)
fgetc(fp);
}

typedef struct tagBITMAP /* The structure for a bitmap. */
{
int width;
int height;
//unsigned char *data;
} BITMAP;


int main()
{
int temp1=0;
BITMAP *bmp[50];

FILE *fp = fopen("splash.bmp","rb");

if (fp!=NULL && (fgetc(fp)=='B' && fgetc(fp)=='M')){

bmp[temp1] = (BITMAP *) malloc (sizeof(BITMAP));

fskip(fp,16);
fread(&bmp[temp1].width, sizeof(int), 1, fp);

fskip(fp,2);
fread(&bmp[temp1].height,sizeof(int), 1, fp);



fclose(fp);
}
else exit(0);

getch();

}

最佳答案

fread(&bmp[temp1].width, sizeof(int), 1, fp);

应该是:

fread(&(bmp[temp1]->width), sizeof(int), 1, fp);

因为 bmp[temp1] 是使用 -> 运算符而不是 的结构地址。 第二个 fread( )

. DOT 与称为通过引用选择元素的值变量一起工作。
-> 用于调用通过指针选择元素

关于c - 代码中的 fread() 函数有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17411181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com