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)
しかし、2回目の呼び出しでプログラムがクラッシュします..誰かが私が間違っていることを説明できますか?