История изменений
Исправление Psilocybe, (текущая версия) :
Если подумать с точки зрения семантики операций, то realloc изменение выделенного ранее куска памяти, то есть в случае успеха - должен быть не NULL указатель, а если память невозможно выделить, то вернуть NULL. В случае же размера 0 и простого освобождения памяти (то есть фактического free) так же будет возвращен NULL, что неотличимо от сбоя выделения новой памяти при размере >0.
Всё правильно сделали, что внесли данное поведение в UB.
Божественная сишечка становится всё лучше!
Исправление Psilocybe, :
Если подумать с точки зрения семантики операций, то realloc изменение выделенного ранее куска памяти, то есть в случае успеха - должен быть не NULL указатель, а если память невозможно выделить, то вернуть NULL. В случае же размера 0 и простого освобождения памяти (то есть фактического free) так же будет возвращен NULL, что неотличимо от сбоя выделения новой памяти при размере >0.
Всё правильно сделали, что внесли данное поведение в UB.
Исходная версия Psilocybe, :
Если подумать с точки зрения семантики операций, то realloc изменение выделенного ранее куска памяти, то есть в случае успеха - должен быть не NULL указатель, а если память невозможно выделить, то вернуть NULL. В случае же размера и простого освобождения памяти (то есть фактического free) так же будет возвращен NULL, что неотличимо от сбоя выделения новой памяти при размере >0.
Всё правильно сделали, что внесли данное поведение в UB.