【发布时间】:2014-01-09 19:36:23
【问题描述】:
我目前正在制作一个图像处理程序,进展顺利,但突然出现了一些fopen() 错误。在我以前的版本中(没有动态分配的数组,没有结构)没关系,char name[50] 在fopen(name, "a") 中使用,它工作得很好,但现在我根本无法让它工作。无论我输入fopen(),它都不会编译。这是完整的错误描述:
obsluga.c:30:8:错误:分配给类型时类型不兼容 来自‘struct FILE *’类型的‘FILE’ plik2=fopen(name, "a");
代码片段(我可以发布更多,但应该无关紧要)
char name[50];
plik2=fopen(name, "a");
我真正想要的是传递给char *output 中包含的fopen() 文件名,该文件名具有适当的结构,但遗憾的是,即使是最简单的方法现在也不起作用。
【问题讨论】:
-
看来
plik2的类型是FILE而不是FILE * -
提供完整但最小的示例。
-
您到底是如何得出结论认为 plik2 的声明无关紧要的?
-
顺便说一下,错误消息中对
struct FILE的引用有点牵强附会。FILE类型显然恰好是您的特定实现中称为struct FILE的东西的 typedef。它可以在其他实现中以不同方式定义。