[英]program received signal sigsegv segmentation fault
我用不同的编译器编写了一个程序。 我不能在大学上运行它。 程序读取了一个名为board.txt的文本文件,它计算了不同的单词等
这是要下载的项目: https : //mega.co.nz/#!CN11xS6Q!w549XDt4T7huRyTjv3J-b3a8vcsbbMrzEGIb2X4RRSM
这是代码的一部分:
void countwords(FILE *board){
int word=0;
char *a;
printf("\ncounting words...\n");
rewind(board);
while(!feof(board)){
*a=fgetc(board);
if(*a==' ')
word++;
}
printf("%d",word+1);
}
a
是一个指针,并且您永远不会初始化它。 实际上,它指向内存中的一些随机位置; 您正在写入该内存位置! 没在您自己的计算机上崩溃,真是愚蠢的运气。
指针变量本身是无用的。 您一次只能读取和处理一个字符,因此一个简单的char
变量就足够了。
void countwords(FILE *board){
int word=0;
char c;
printf("\ncounting words...\n");
rewind(board);
while(!feof(board)){
c=fgetc(board);
if(c==' ')
word++;
}
printf("%d",word+1);
}
在其他功能中进行相同的调整。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.