char* output= (char*) argv[2];
92 fp = fopen(output, "w");
93 if(fp = NULL)
94 {
95 printf("writing output failed");
96 return 0;
97 }
98 fprintf(fp,"hello");
这是导致段错误exc 98行内存不良记忆。 我在想什么?fprintf段错
char* output= (char*) argv[2];
92 fp = fopen(output, "w");
93 if(fp = NULL)
94 {
95 printf("writing output failed");
96 return 0;
97 }
98 fprintf(fp,"hello");
这是导致段错误exc 98行内存不良记忆。 我在想什么?fprintf段错
线93
if(fp = NULL)
被分配FP为NULL,而不是比较为NULL。使用
if(fp == NULL)
代替。作为netcoder指出,你的编译器应该警告你这个。如果您意外地交换了赋值比较,您也可以以if (NULL == fp)
的形式编写测试以生成编译器错误。 (请注意,有些人可能会发现编码反感,因此它可能产生在代码审查一些抱怨的这种风格!)
哦,愚蠢的错误。非常感谢你 – kiki
可以接受问题的答案,你已经找到有用吗? – Dancrumb