Некоторые биты malloc(0) в C могут возвращать NULL=news.ycombinator.com=

Некоторые биты в malloc(0) в C могут возвращать NULL ( utcc.utoronto.ca )

bobmcnamara 17 минут назад [–]
Давным-давно я работал с системой, в которой malloc(0) увеличивал счетчик и возвращал -1.

free(-1) уменьшил счетчик.

Таким образом, вы сможете проверить наличие утечек :p

отвечать

o11c 1 минуту назад | [–]
Не соответствует требованиям, поскольку `malloc(0)` указывает на возврат уникального указателя, если он не равен `NULL`.

На большинстве платформ реализация могла бы просто возвращать адреса из верхней половины адресного пространства. Однако на 32-битных платформах не требуется много времени, чтобы исчерпать такое адресное пространство, и вы не хотите тратить место на распределитель битовой карты. Я полагаю, вы могли бы просто использовать счетчик для каждой области 64 КБ или что-то в этом роде, так что вы можете повторно использовать его, если было освобождено нужное количество элементов…

отвечать


Рассмотрите возможность подачи заявки на набор в YC на осень 2025 года! Заявки принимаются до 4 августа

Source: news.ycombinator.com

Leave a Reply

Your email address will not be published. Required fields are marked *