【发布时间】:2015-10-09 16:45:29
【问题描述】:
我正在运行一个简单的无限循环,它需要接收用户输入并将其拆分为一个数组。当我尝试显示数组的元素时,出现段错误。 这是我的代码。
while(1){
int tokenCount = 1;
char* usrInputStr = NULL;
char* buffer;
scanf ("%[^\n]%*c", usrInputStr);
int len = strlen(usrInputStr);
for (int i = 0; i <len ; ++i) {
if(isspace(usrInputStr[i])) tokenCount++;
}
char* currentTokens[tokenCount+1];
int index = 0;
buffer = strtok(usrInputStr, " ");
while(buffer != NULL){
currentTokens[index] = buffer;
index++;
buffer = strtok(NULL, " ");
}
for (int i = 0; i < index+1; ++i)
{
currentTokens[i];
}
}//end of backbone while
return 0;
}
知道我哪里出错了,当使用 g++ 编译时,相同的代码在 .cpp 文件中运行良好。
【问题讨论】:
标签: c arrays segmentation-fault