LINUX.ORG.RU

История изменений

Исправление level1, (текущая версия) :

В main вы создали указатель, в который записали произвольный номер ячейки памяти. Допустим, 100. Передаете 100 в функцию. В функции создается локальная переменная p, которой присваивается значение 100. Далее malloc выделяет память по адресу, ну допустим, 200. Присваивает p=200. По выходу из функции эту локальную переменную уже не видно, и никакого воздействия на tree не произошло.

На самом деле, в функции не пройдет проверка на NULL, так как там будет 100. Но если бы вы в main инициализировали tree = NULL, то работало бы так, как я написал.

Исправление level1, :

В main вы создали указатель, в который записали произвольный номер ячейки памяти. Допустим, 100. Передаете 100 в функцию. В функции создается локальная переменная p, которой присваивается значение 100. Далее malloc выделяет память по адресу, ну допустим, 200. Присваивает p=200. По выходу из функции эту локальную переменную уже не видно, и никакого воздействия на tree не произошло.

Исходная версия level1, :

В main вы создали указатель, в который записали произвольный номер ячейки памяти. Допустим, 100. Передаете 100 в функцию. В функции создается локальная переменная p, которой присваивается значение 100. Далее malloc выделяет память по адресу, ну допустим, 200. Присваивает p=200. По выходу из функции эту локальную переменную уже не видно, и никакого воздействия на tree не призошло.