То, что вы написали, - это массив (с неправильным использованием, упомянутым Шри), а не связанный список.
Чтобы создать связанный список, вам нужно добавить указатель на вашу структуру в вашу структуру ( <- не грамматическая ошибка!), но, как показывает ваш код, это невозможно. Вы также должны изменить объявление: </p>
typedef struct
{
int id;
int portnum;
int baudrate;
} port_t;
на:
typedef struct port_t
{
struct port_t *next;
int id;
int portnum;
int baudrate;
} port_t;
struct tag
помещает tag
в специальное пространство имен, которое находится непосредственно (даже перед открытием * 1011) *), и это пространство имен доступно только через struct
(в C. C ++ помещает tag
также в родительское пространство имен, поэтому вышеприведенный выдаст ошибку переопределения, поэтому современные заголовки как правило, используют typedef struct tag_s {...} tag_t;
).
Оттуда вы будете распределять блоки по одному элементу, используя mallo c, назначая каждый новый указатель блока в поле next
в предыдущем блоке и устанавливая последний next
поле до NULL
(или 0). Конечно, вы захотите отследить первый блок, и вам также потребуется освободить каждый блок отдельно.