为啥会向0地址写入,退出,不是无限循环么

img
为啥会向0地址写入,退出,不是无限循环么

内存不是无限的,所以malloc最终会失败,返回NULL指针,NULL的值为0,所以最后是写入地址0退出

程序会因为异常而结束循环并且结束程序。
循环在正常程序下是死循环。如果死循环内有异常的话,会导致程序异常终止。

我觉得应该选D,在VS2010下编译的话是会报错的,malloc返回的是void,是不能赋值给char的,必须强制转换
所以这个题是有问题的,具体还要看编译器类型,可能有的编译器不报错