これは私が必要なスペースを割り当てる方法です:
char *all_type_str;
...
all_type_str = malloc(sizeof(char)*4);
設定文字列:
strcpy(all_type_str,"all");
別の配列に設定します:
...
values[0].value = all_type_str;
値配列の解放:
for (i=0; i<arrSize; i++)
{
free(values[i].value); // <-- SIGABRT
}
free(values);
値配列の割り当て:
values = malloc(sizeof(struct cnf)*adjArrSize);
gdb を使用すると、必要な"all"
文字列に非 null ポインターがあることがわかります
しかし、何らかの理由SIGABRT
で、配列の最初の場所を解放しようとすると取得します。
なぜこれが起こっているのですか?