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