从不兼容的指针类型分配[-Wincompatible-pointer-types]

时间:2016-09-12 01:17:25

标签: c pointers

我是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文件后,我得到了 分段错误(核心转储)错误。

1 个答案:

答案 0 :(得分:4)

dFILE *,因此&dFILE **。这不能分配给f FILE *

你想要的是f=d。或者完全摆脱d

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