C语言内存分配malloc导致的程序退出

char *p;
while (1) {
p = malloc(1);
*p = 0;
}

这样写最后是因为没有内存退出还是向0写入退出?怎么感觉是内存完了

内存分配失败就会返回空指针

堆内存被使用完后,在申请就睡失败,p就是NULL,即地址为0写入,而这个地址是受程序保护的,无法写入因此退出

个人觉得你这个应该是会导致堆内存不够,导致程序异常退出