LINUX.ORG.RU

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

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

Чувак, там список 13 страниц формата A4. У тебя точно он голове помещается? Весь? Ты точно в этом уверен?

Ну да :)

Наа практике такого не бывает, что опытный разработчик напоролся на UB, про которое он не знал, что это UB. Ну по крайней мере на сишке. В C++ может и бывает. (На расте точно бывает, благодаря средней компетенции растаманов — см. хотя бы следующий комментарий.)

Прямо как в Си! Свежие стандарты добавляют UB только в путь. В C17 вызов realloc(ptr, 0) специально сделали определённым поведением, а потом в C23 сделали неопределённым. Видишь как круто сишники умеют?

Так программа пишется под конкретный стандарт, а не под «самый новый си». И этот стандарт фиксируется с помощью -std=c99.

А по поводу realloc — они просто узаконили беззаконие, которое и так было и на которое нельзя было полагаться при написании портабельных программ: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2464.pdf

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

Чувак, там список 13 страниц формата A4. У тебя точно он голове помещается? Весь? Ты точно в этом уверен?

Ну да :)

Наа практике такого не бывает, что опытный разработчик напоролся на UB, про которое он не знал, что это UB. Ну по крайней мере на сишке. В C++ может и бывает.

Прямо как в Си! Свежие стандарты добавляют UB только в путь. В C17 вызов realloc(ptr, 0) специально сделали определённым поведением, а потом в C23 сделали неопределённым. Видишь как круто сишники умеют?

Так программа пишется под конкретный стандарт, а не под «самый новый си». И этот стандарт фиксируется с помощью -std=c99.

А по поводу realloc — они просто узаконили беззаконие, которое и так было и на которое нельзя было полагаться при написании портабельных программ: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2464.pdf