我有一个包含 char* 的数组 user_input。现在,该数组的大小将在运行时由以下代码确定。
char** user_input;
user_input = (char**)malloc(get_size());
现在,user_input 中的每个索引都将包含一个指向从函数 parse_index(int) 接收到的动态分配的字符数组的指针。
for(int i=0;i<SIZE;i++){
user_input[i]=parse_index[i]; //parse_index makes a call to malloc
}
现在,当我完成后,我通过以下代码释放堆上的所有内存。
//to deallocate the character arrays
for(int i=0;i<SIZE;i++){
free(user_input[i])
}
//to deallocate the char*
free(user_input)
但是第二次调用导致程序崩溃..有人可以解释我做错了什么吗?