Alocando memória zero
ANSI 4.10.3 O comportamento da função calloc, malloc ou realloc se o tamanho solicitado é zero
As funções calloc, malloc e realloc aceitam zero como argumento. Nenhuma memória real é alocada, mas um ponteiro válido é retornado e o bloco de memória pode ser modificado mais tarde por realloc.