我得到的printf statment分段故障
#include <stdio.h>
#include <stdlib.h>
void Insert(char w[])
{
int j;
int n=5;
printf("word is %s AFTER\n", w);
}
int main(int argc, char *argv[])
{
FILE *fp;
if (argc !=2)
fp=fopen("words.txt", "r");
else
fp=fopen(argv[1], "r");
char line[28];
while(!feof(fp)){
fgets(line, 256, fp);
Insert(line);
}
}
在
內插入函數內部分段故障WORD.TXT它只是一堆在每一行字,即
apple
banana
...
zoo
( ...只是指之間的一堆話) 它打印此:
word is apple
AFTER
word is banana
AFTER
...(a bunch more repetitions)
word is cookie
Segmentation Fault(core dumped)
爲什麼會出現分段錯誤?它完美地打印了這個詞。並沒有打印AFTER
謝謝。
我不認爲這是錯誤,但爲什麼你最多讀取256個字節到一個只有28b的數組中?將行[28]更改爲行[256],看看是否有幫助。 – Gille
'char line [28];'然後'fgets(line,256,fp);'看起來很討厭。你可以有一個[非常好的解決方案](http://en.wikipedia.org/wiki/Sizeof)。 – 2012-12-03 07:06:09
'char line [28];'=>'char line [256];' –