【发布时间】:2015-08-29 11:29:20
【问题描述】:
我必须编写一个函数,该函数将使用二进制文件中的数据读取 Product 类型的结构数组。该文件包含产品数量 - nr 和一些 Product 类型的文章。怎么了?提前谢谢!
#define SIZE 30
typedef struc{
int id;
char[SIZE] name;
float price;
}Product;
void create(Product *p, FILE *fptr)
{
p = malloc(sizeof(Product));
fread(p, 1, sizeof(Product), fptr);
}
int main(int argc, char* argv[])
{
FILE *fptr = fopen(argv[1],"rb");
Product *p;
create(p, fptr);
return 0;
}
【问题讨论】:
-
仅当数据保存为
fwrite(p, 1, sizeof(Product), fptr);时才有效。文件是如何创建的? -
如果您希望看到
p在main()中具有任何确定性,那么根本就不会工作。在create中分配给p对main()中的p没有任何意义。你的代码在哪里尝试读取幅度,然后是数组?这只会读取 一个 结构,然后泄漏它。
标签: c arrays structure binaryfiles