Вы должны прочитать справочную страницу malloc (3) , в частности, часть calloc ().
Недостаточно просто поместить указатель в структуру и предположить, что магическим образомбудет массив.Вы должны зарезервировать для него память, используя функции, описанные на этой странице руководства.И что более важно, вы должны free()
зарезервировать память, когда она вам больше не нужна.
Также вам следует подумать о том, чтобы сделать длину вашего массива частью вашей структуры.Вот так:
struct node{
int distance;
int destination;
int weight;
node *adj;
size_t adj_count;
};
struct adjList{
struct node *node;
size_t node_count;
adjList *next; // I renamed this member to next,
// which makes it more clear that this is a linked list
};
РЕДАКТИРОВАТЬ: После того, как вы отредактировали свой вопрос, внезапно появляется malloc (), но это, безусловно, неправильно.Или ваши названия структур данных вводят в заблуждение.