因为这件事,我一直把头发拉出来。我是C语言的新手。它一直给我一个"分段错误:11"错误信息。我无法弄清楚出了什么问题。
我认为问题可能在于我的代码的以下部分:
int counter = 21;
char load[counter];
while(fgets(load, 81, input) != NULL)
答案 0 :(得分:1)
您有内存访问问题。你有:
int B = 21;
...
char buffer[B];
...
while(fgets(buffer, 81, input) != NULL) {
由于您正在访问buffer
越界,您的程序将受到未定义的行为。您可以通过确保在B
的调用中使用81
而不是fgets()
来解决此问题。如果您希望能够一次将81
个字符读入buffer
,请将B
的值设置为81
。
int B = 81; // 81 instead of 21
...
char buffer[B];
...
while(fgets(buffer, B, input) != NULL) { // B instead of 81