> не зануляется память - ибо дорого этодорого это на каждый чих -- спрашивать память у ядра. но реальные программы так не делают, они РЕДКО спрашивают память у ядра (стараются использовать повторно то что уже спрашивали.. для этого существует в программах свой собственный манагер памяти) и именно по этой же причине -- операция освобождения памяти -- не возвращает память обратно ядру (манагер памяти -- оставляет освобождённый участок памяти у себя на прозапас, вместо того чтобы вернуть его ядру).
а вот занулить один разок участок памяти -- для ядра это не дорогая операция. с учётом того что эта операция производится не часто -- то она вообще не заметно влияет на производительность.
поэтому ядро -- как раз таки-зануляет память, перед тем как её выделить.
если ты в программе заиспользовал malloc и там вдруг оказался НЕпустой участок памяти -- тыг это тот самый участок который уже бывал в этой программе ранее, а не от другой программы.