私はsegmentation fault: 11
を取得し続ける構造体の初期化を持っています。私はGDBあたりのエラーを取得するのはここmain.c
でリサイズ可能な配列を持つリスト構造体を初期化する適切な方法
typedef struct {
int id;
double value;
char* name;
} Item;
typedef struct {
Item** items;
int length;
int capacity;
} List;
List* initList()
{
List* list = NULL;
list->items = (Item**)malloc(10 * sizeof(Item*));
list->length = 0;
list->capacity = 10;
return list;
}
は次のとおりです。
List* list = initList();
私はCに新しいです
list->items = (Item**)malloc(10 * sizeof(Item*));
に問題があるので、私は気付か、初期化できません私のinitList
関数は指定された代入を持つリストを作成すると確信しています。私はitems
を無料でinitList
にそれぞれ持っています。
'List * list = NULL;'あなたは 'List'構造体を割り当てませんが、次の行にそれを埋めています。未定義の動作。 –
'リスト*リスト= NULL; list-> items = ... 'です。 'list'はNULLを参照しています。 – MFisherKDX
'List * list = NULL;を記述した後、次の行' list-> items = ... 'は' NULL'ポインタをデリバティブしています。 –