3

これは私が必要なスペースを割り当てる方法です:

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で、配列の最初の場所を解放しようとすると取得します。

なぜこれが起こっているのですか?

4

1 に答える 1