我试图一次添加一个字符到char数组,称为缓冲区。当我尝试添加一个字符到缓冲区[count]时,出现了分段错误。但是,如果我尝试添加一个字符缓冲区[0],缓冲区[1],或任何其他整数偏移它运行良好。这里是我的代码:当使用变量来抵消数组时,Seg错误
#include <stdio.h>
int main(int argc, char *argv[]){
FILE * fp;
char buffer[100];
fp = fopen(*(argv+1), "r");
if(fp == NULL){
printf("File \"%s\" not found!\n", *(argv+1));
return 0;
}
int curr_char;
unsigned int count = 0;
unsigned int min_len;
while(!feof(fp)){
curr_char = fgetc(fp);
if((curr_char >= 32) && (curr_char <= 126)){
buffer[count] = curr_char;
printf("%c", curr_char);
count++;
if(!((curr_char >= 32) && (curr_char <= 126))){
break;
}
}
}
}
为什么不允许使用buffer [count]?
好的,有道理。谢谢。 – user2121620