2009-08-19 2 views

ответ

3

next member является указателем - переменной, которая будет содержать адрес node, а не node. Все указатели типа данных обычно имеют одинаковый размер, поэтому для компилятора достаточно знать, что это указатель, позволяющий вычислить его размер.

7

Следующая только указатель, так что имеет фиксированный размер значение в каждой машине, оно просто добавит размеры + указателя + добавление и распределение узла struct

17

Член следующий - указатель. Указатели имеют одинаковый размер, поэтому компилятору не нужно знать, насколько велика то, что может указывать на следующее.

+0

Другими словами, компилятор выделяет достаточно места для «следующего» для хранения указатель на узел в структуре узла. Чтобы на самом деле использовать «следующий», вы должны сделать другой вызов выделения, чтобы заполнить следующую структуру. – Christopher

0

Это происходит динамически, когда вы используете malloc. В противном случае ничего не выделяется. Весь компилятор просто выделяет 4 байта для указателя, который будет содержать адрес «будущей» выделенной памяти. Если вы попытаетесь получить доступ к указателю без выделения какой-либо памяти, произойдет сбой кода (вы получите доступ к некоторой недопустимой памяти в программе)

Смежные вопросы