我正在运行一个简单的无限循环,需要在用户输入中将其拆分成数组。当我尝试显示数组的元素时,我得到一个seg错误。 这是我的代码。用户输入的分段错误
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;
}
任何想法,我错了,相同的代码工作正常.cpp文件,用g ++编译时。
那么我需要malloc吗? –
这是一种选择。其他选项是使用足够大的数组,或者使用'std :: getline'(一个C++库函数)。 –