C 分段错误接受用户输入
我正在运行一个简单的无限循环,需要接收用户输入并将其拆分为一个数组。当我试图显示阵列的元素时,我得到一个seg故障。 这是我的密码C 分段错误接受用户输入,c,arrays,segmentation-fault,C,Arrays,Segmentation Fault,我正在运行一个简单的无限循环,需要接收用户输入并将其拆分为一个数组。当我试图显示阵列的元素时,我得到一个seg故障。 这是我的密码 while(1){ int tokenCount = 1; char* usrInputStr = NULL; char* buffer; scanf ("%[^\n]%*c", usrInputStr); int len = strlen(usrInputStr);
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;
}
while(1){
int-tokenCount=1;
char*usrInputStr=NULL;
字符*缓冲区;
scanf(“%[^\n]%*c”,usrInputStr);
int len=strlen(usrInputStr);
对于(int i=0;i,在使用以下命令初始化后,您尚未为usrInputStr
分配内存:
char* usrInputStr = NULL;
然后,您继续在以下项目中使用它:
scanf ("%[^\n]%*c", usrInputStr);
在使用以下各项初始化usrInputStr
后,您尚未为其分配内存:
char* usrInputStr = NULL;
然后,您继续在以下项目中使用它:
scanf ("%[^\n]%*c", usrInputStr);
在使用以下各项初始化usrInputStr
后,您尚未为其分配内存:
char* usrInputStr = NULL;
然后,您继续在以下项目中使用它:
scanf ("%[^\n]%*c", usrInputStr);
在使用以下各项初始化usrInputStr
后,您尚未为其分配内存:
char* usrInputStr = NULL;
然后,您继续在以下项目中使用它:
scanf ("%[^\n]%*c", usrInputStr);
您没有为char*usrInputStr分配任何内存位置,也没有扫描实际为空指针的内容。这导致了一些分段错误。您只是为其分配了一些动态内存。
例如:-
char*usrInputStr=(char*)malloc(50*sizeof(char))
您没有为char*usrInputStr分配任何内存位置,也没有扫描实际为空指针的内容。这导致了一些分段错误。您只是为其分配了一些动态内存。
例如:-
char*usrInputStr=(char*)malloc(50*sizeof(char))
您没有为char*usrInputStr分配任何内存位置,也没有扫描实际为空指针的内容。这导致了一些分段错误。您只是为其分配了一些动态内存。
例如:-
char*usrInputStr=(char*)malloc(50*sizeof(char))
您没有为char*usrInputStr分配任何内存位置,也没有扫描实际为空指针的内容。这导致了一些分段错误。您只是为其分配了一些动态内存。
例如:-
char*usrInputStr=(char*)malloc(50*sizeof(char))
所以我需要Malc吗?这是一个选项。其他选项是使用一个足够大的数组,或者使用<代码> STD::GETLION<代码>(C++库函数)。所以我需要Malc吗?这是一个选项。其他选项是使用足够大的数组,或者使用<代码> STD::GETLION<代码>(C++库函数)其他的选择是使用足够大的数组,或者使用<代码> STD::GETLION<代码>(C++库函数)。所以我需要Malc吗?这是一个选项。其他选项是使用足够大的数组,或者使用<代码> STD::GETLION<代码>(C++库函数)。