2013-03-01 2 views
1

Я пытаюсь вставить в переднюю часть связанного списка, а также вернуть выделенную голову, когда голова NULL, но, похоже, работает только в том случае, если голова не является NULL.Использует функцию, которая назначает нулевой указатель с использованием нулевого указателя в качестве аргумента, действительного в C?

по существу, если

node* x = NULL; 

является

x = addfront(x, 3) 

действует?

+1

Что значит «это работает, только если голова не NULL»? что он делает, когда он «не работает»? Также что делает 'addfront()' do/return? – Mike

+1

Может быть или не быть действительным в зависимости от кода внутри 'addfront'. – zwol

ответ

3

Использует функцию, которая назначает нулевой указатель, используя нулевой указатель, в качестве аргумента, действительного в C?

Это зависит от addfront содержание. До тех пор, пока вы не разыскиваете x в addfront, это совершенно верно, поскольку разыменование нулевого указателя является неопределенным поведением.

, похоже, работает только в том случае, если голова не является NULL.

addfront Исходный код. Если вы не разыскиваете x, ошибка будет в другом месте.

3

Нулевые указатели в порядке, пока вы не пытаетесь разыменовать их.

Что-то вроде

node* x = NULL; 
x = NULL; 

прекрасно подходит.

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