> -- Comdiv писал(а):
> Более того, уже в документации malloc для GNU/Linux написано прекрасное. Оцените юмор:
Мне кажется, что это связано с виртуальной памятью. Аллокатор сначала определяет адрес для запрашиваемой памяти, а непосредственно операционная система выделяет под это оперативную память в момент, когда происходит чтение или запись в эту память, при этом, если свободной оперативной памяти нет, то необходимо выгрузить какие-то программы в файл подкачки, при этом может возникнуть ситуация, что вся память невыгружаемая или при попытке выгрузить данные в файл подкачки возникла ошибка нехватки места на диске.
На практике такого обычно не бывает, что практически вся память невыгружаемая и что нет места для выгрузки на диск.
И такая ситуация может возникнуть не только со станартными аллокаторами и со своим распределителем памяти, так как распределитель памяти работает поверх операционной системы (а операционная система сначала оптимистично говорит, что память будет, а когда потребуется судорожно ищет, где бы эту память найти)

В остальных случаях, если в адресном пространстве процесса больше нет свободной памяти, то должен возвращаться отказ в выделении памяти или null, а если это не так, то это баг системы.