Почему malloc (0) возвращает ненулевой адрес в Windows?
Приведенный ниже код возвращает адрес при выполнении в Windows, хотя я ожидал, что он вернет NULL.
int main()
{
char *ptr = NULL;
ptr = malloc(0);
printf("malloc returned = %u\n", ptr);
}
Что могло вызвать такую реализацию malloc? Есть ли причина этого?
Поскольку это 0-байтовая память, я не экспериментировал с записью каких-либо данных. Но можно ли вообще использовать эту память для чего-либо?