我有一个字符串块,比如“aaa\0bbbb\0ccccccc\0”,我想把它们变成一个字符串数组。我尝试使用以下代码这样做:
void parsePath(char* pathString){
char *pathS = malloc(strlen(pathString));
strcpy(pathS, pathString);
printf(1,"33333\n");
pathCount = 0;
int i,charIndex;
printf(1,"44444\n");
for(i=0; i<strlen(pathString) ; i++){
if(pathS[i]=='\0')
{
char* ith = malloc(charIndex);
strcpy(ith,pathS+i-charIndex);
printf(1,"parsed string %s\n",ith);
exportPathList[pathCount] = ith;
pathCount++;
charIndex=0;
}
else{
charIndex++;
}
}
return;
}
exportPathList 是前面代码中由 char* exportPathList[32] 定义的全局变量;使用该函数时 exportPathList[i] 包含垃圾。我究竟做错了什么?