所以我动态创建一个字符串数组.然后我通过调用strtok为该数组中的每个元素分配一个返回的指针.在我的过程结束时,我需要重做一切,我一直试图释放所述数组元素中的指针,但我不断收到错误说明
*** glibc detected *** ./prgm: munmap_chunk(): invalid pointer: 0x00007fff600d98
另外,在循环结束时释放inputStr是否有意义?
我的逻辑"根本不合逻辑"在哪里思考错误...例如代码
char** argvNew = (char**)calloc(33,sizeof(char*));
char inputStr[128];
do{
scanf("%127[^\n]%*c", inputStr);
token = strtok(inputStr, delim);
/* Add tokens to array*/
varNum= 0;
for(i = 0; token != NULL; i++){
varNum++;
argvNew[i] = token;
token = strtok(NULL, delim);
}
argvNew[i] = NULL;
//Free argvNew
for(i = 0; i < varNum;i++){
printf("Deleting %i, %s\n",i,argvNew[i]);
free(argvNew[i]);
}
while(1);
Run Code Online (Sandbox Code Playgroud)