我只是创建简单的实现,其中我读取input.txt文件,其中包含一行代码,其中包含由空格分隔的两个数字(例如4 4) .
我试图通过首先划分空间来区分它们 .
我试图将第一个值用作char数组的大小 .
然而,它一直导致分段错误,但我不知道 .
int main(int argc, char **argv){
int number;
int i = 0;
char *token;
char buf[100];
int tempNum[2];
// Open file
FILE * fPointer;
fPointer = fopen("input.txt", "r");
// Read first line
fgets(buf, 1024, fPointer);
token = strtok(buf, " ");
number = atoi(token);
char charArray[number];
while(token != NULL){
tempNum[i] = atoi(token);
token = strtok(NULL, "\n");
printf("%d\n", tempNum[i]);
i++;
}
如果我注释掉“char charArray [number]”,它不会导致分段错误 . 如果我只注释掉while循环,则不会导致分段错误 . 但我无法弄清楚它为什么会导致分割 . 请帮忙 .
先感谢您 .
1 回答
像这样的东西?