繁体   English   中英

来自不兼容的指针类型[-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文件后,出现细分错误(核心转储)错误。

dFILE * ,所以&dFILE ** 不能将其分配给作为FILE * f

您想要的是f=d 或完全摆脱d

f = fopen("file.txt", "w");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM