![](/img/trans.png)
[英]Assignment from incompatible pointer type[Wincompatible-pointer-types]
[英]assignment from incompatible pointer type [-Wincompatible-pointer-types]
我是C编程的新手。 我正在用c学习指针,我测试了简单的文件操作。 为了克服覆盖txt文件中的值。 我全局声明文件,并且在方法内部将本地指针地址初始化为全局指针地址。 我的意图是使用相同的内存位置。 通过使用相同的存储位置来执行文件操作。 请足够友好地在下面找到我的程序。
FILE *f;// global pointer.
void myTest(char* val) {
//d is local pointer.
FILE *d = fopen("file.txt", "w");
f=&d;
if (f == NULL)
{
printf("Error opening file!\n");
exit(1);
}
// print the data
fprintf(f, "%s\n",val);
}
int main(void) {
myTest("test");
fclose(f);
}
警告:来自不兼容指针类型[-Wincompatible-pointer-types] f =&d的赋值; 运行bin文件后,出现细分错误(核心转储)错误。
d
是FILE *
,所以&d
是FILE **
。 不能将其分配给作为FILE *
f
。
您想要的是f=d
。 或完全摆脱d
:
f = fopen("file.txt", "w");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.