我是C的新手,我无法解决这个问题。当我在文本文件上写入超过27个字符时,我收到信号SIGTRAP。跟踪/断点陷阱。
我在网吧电脑窗口7上用Dev-C ++编译。文本文件参赛:Dinosaurs are a diverse group of animals of the clade Dinosauria
int main(int argc, char *argv[]) {
FILE *myinput;
char **arr, **temp;
char string[50];
int i,j,wrd;
arr=NULL;
temp=NULL;
i=0;
myinput = fopen("word.txt", "r");
while(1)
{
wrd = fscanf(myinput, "%s",string);
if(!(wrd>0))
{
break;
}
temp=(char **)realloc(arr,i+1);
arr=temp;
arr[i]=(char *)malloc(sizeof(char)*(strlen(string)+1));
strcpy(arr[i],string);
i++; //counting words in a line from txt file.
}
for(j=0;j<i; j++)
{
printf("%s ", arr[j]);
}
free(arr);
return 0;
}
答案 0 :(得分:0)
你的realloc()函数有一个不正确的参数:size。你应该将指针的大小分配给数字i,但是你只分配i。
temp=(char **)realloc(arr, sizeof( char* ) * (i+1) );
剩下的唯一问题可能是你没有包含必要的标题。