malloc()
aloca memória do heap, que ele gerencia. É muito bom que possa retornar um pedaço de heap que foi usado anteriormente e, em seguida, free()ed
, e assim ele conterá os dados que já existiam antes. Quando não há heap ainda, ou nenhum livre, ele precisa obter mais ram do kernel para aumentar o heap. Quando o kernel fornece um novo processo mais ram, ele zera tudo primeiro, para que um processo não seja capaz de capturar e examinar dados liberados por outro processo, que pode conter informações confidenciais. Assim, o que você provavelmente está vendo é a primeira vez que você usa malloc()
de qualquer memória, ela vem diretamente do kernel e é, portanto, zeroeod, em vez de ser reusada no processo, o que não seria zerado.