getWordsArray()获取一个指向char数组的指针-输入。
我试图拆分输入并将每个单词存储在char数组中。并最终返回该char数组。
char *getWordsArray(char *input)
{
char *token;
char *search = " ,";
char *splited, *temp;
int counter=0;
splited = malloc(sizeof(char)*15);
token = strtok (input,search);
while (token != NULL ) {
printf("%s\n",token);
token = strtok (NULL,search);
// splited[counter] = *token; //aliasing ?
strcpy(&splited[counter] , token);
temp= realloc(splited,(counter+1)*sizeof(token));
if (temp !=NULL) {
splited = temp;
} else{
free(splited);
printf("Error allocating memory!\n");
return 0 ;
}
counter++;
}
printf("list is: %s\n",splited);
return splited;
}
由于可以正确打印,因此似乎可以正常工作。但是我得到:
EXC_BAD_ACCESS
在
strcpy(&splited[counter] , token);
任何人都可以指出我有什么问题吗?
您的函数返回类型都是错误的;它应该是char **
,而不仅仅是char *
。因此,功能中的分配策略也是错误的。您需要分配的阵列char *
以及阵列char
的每个组件字被存储在数组中char *
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句