Почему malloc (0) возвращает ненулевой адрес в Windows?

Приведенный ниже код возвращает адрес при выполнении в Windows, хотя я ожидал, что он вернет NULL.

int main()
{
   char *ptr = NULL;
   ptr = malloc(0);
   printf("malloc returned = %u\n", ptr);

}

Что могло вызвать такую реализацию malloc? Есть ли причина этого?

Поскольку это 0-байтовая память, я не экспериментировал с записью каких-либо данных. Но можно ли вообще использовать эту память для чего-либо?

Ответы на вопрос(5)

Ваш ответ на вопрос