c语言编程指针的几个小问题

如题所述

1、B
分析:
虽然每次只分配1个字节的堆内存,但由于是死循环,会重复分配,加上每次分配的内存都没有释放,所以当耗尽整个堆内存后,malloc(1);将返回NULL(0),程序会因向0地址写入而异常退出。
2、C
分析:
p指向第1个元素,q指向第6个元素(此时数组a已越界,但C语言编译器不会进行越界检查,所以可以通过编译),而q-p表示两者之间的元素差,所以选C。
3、B
分析:
realloc可以,malloc还需要一些其它的步骤才行。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-08

    D正确,选D。因为malloc前面少了个强制符(char *)。

    C正确,选C。因为指针相减得到的是元素个数,所以“当sizeof...“无关,这种说明是多余的。

相似回答