История изменений
Исправление xaizek, (текущая версия) :
с чего это система вдруг что-то зануляет?
С того, что POSIX предписывает:
MAP_ANONYMOUS The mapping is not backed by any file; its contents are initialized to zero.
А так как malloc()/calloc() дёргает mmap() для больших размеров, то и зануляет.
Другой источник памяти это sbrk(), который тоже зануляет.
Одна из причин — безопасность: процесс не должен получить доступ к старым данным других процессов или системы.
И это кстати куда быстрее ручного зануления, так как ядро может занулять страницы в фоне и отдавать процессам по необходимости из пула пустых страниц.
Исходная версия xaizek, :
с чего это система вдруг что-то зануляет?
С того, что POSIX предписывает:
MAP_ANONYMOUS The mapping is not backed by any file; its contents are initialized to zero.
А так как malloc() дёргает mmap() для больших размеров, то и зануляет.
Другой источник памяти это sbrk(), который тоже зануляет.
Одна из причин — безопасность: процесс не должен получить доступ к старым данным других процессов или системы.
И это кстати куда быстрее ручного зануления, так как ядро может занулять страницы в фоне и отдавать процессам по необходимости из пула пустых страниц.