配列を解放しようとすると文字列(char *)の配列を作成する必要があるプロジェクトで作業しています。配列は、 "ダブルフリーまたは破損"が与えられ、私は問題を把握できませんでした。Cで文字配列の配列を解放しようとすると、空きまたは破損が二重に発生する
ここでは、コード抽出が単純化されたバージョンである、それは無意味に思えるかもしれませんが、それは私が直面しています問題を示しています。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char **cptr;
int i;
cptr = malloc(256*sizeof(char));
for (i=0; i<256; i++) {
cptr[i] = calloc(2, sizeof(char));
cptr[i][0] = (char)i;
}
for (i=0; i<256; i++) {
free(cptr[i]);
}
free(cptr);
return 0;
}
はありがとうを。
'256 * sizeof(char *)'はあなたに256ポインタを与えます –