LINUX.ORG.RU

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

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

В стандарте ничего такого нет. Функция free() не может изменить значение указателя, так как он передается в нее по значению.

А если найду? Стандарт C, дополнение J.2:

The behavior is undefined in the following circumstances:
<...>
- The value of a pointer that refers to space deallocated by a call to the free or realloc function is used (7.20.3).
<...>

Я же говорю, сишники стандарт прочитать не могут, а уже мнение имеют.

Нет. Ему можно присвоить другое значение, или просто не использовать. Занулять переменную, которая больше не будет использоваться - бессмысленная трата циклов.

Зато обосраться с указателями на ровном месте – это очень осмысленно. Если ты присваиваешь значение сразу же в пределах функции, то компилятор выкинет зануление, потому что SSA. Если же где-то ещё, то лучше перестраховаться, а то код меняется и можно use-after-free словить, прямо как перцы из Xorg.

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

В стандарте ничего такого нет. Функция free() не может изменить значение указателя, так как он передается в нее по значению.

А если найду? Стандарт C, дополнение J.2:

The behavior is undefined in the following circumstances:
<...>
- The value of a pointer that refers to space deallocated by a call to the free or realloc function is used (7.20.3).
<...>

Я же говорю, сишники стандарт прочитать не могут, а уже мнение имеют.

Нет. Ему можно присвоить другое значение, или просто не использовать. Занулять переменную, которая больше не будет использоваться - бессмысленная трата циклов.

Зато обосраться с указателями на ровном месте – это очень осмысленно. Если ты присваиваешь значение сразу же в пределах функции, то компилятор выкинет зануление, потому что SSA. Если же где-то ещё, то лучше перестраховаться, а то код меняется.

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

В стандарте ничего такого нет. Функция free() не может изменить значение указателя, так как он передается в нее по значению.

А если найду? Стандарт C, дополнение J.2:

The behavior is undefined in the following circumstances:
<...>
- The value of a pointer that refers to space deallocated by a call to the free or realloc function is used (7.20.3).
<...>

Я же говорю, сишники стандарт прочитать не могут, а уже мнение имеют.