【刷题】C++入门:使用 char* p = new char[100]申请一段内存,然后使用delete p释放,有什么问题?

使用 char* p = new char[100]申请一段内存,然后使用delete p释放,有什么问题?
A.会有内存泄露
B.不会有内存泄露,但不建议用
C.编译就会报错,必须使用delete []p
D.编译没问题,运行会直接崩溃

分析:
当用delete来释放用new int[]申请的内存空间时,由于其为基本数据类型没有析构函数,所以使用delete与delete []相同,两者都会释放申请的内存空间
若是自定义的数据类型,有析构函数时,用new []申请的空间,必须要用delete []来释放,因为要delete []时会逐一调用对象数组的析构函数,然后释放空间
所以答案为 B

猜你喜欢

转载自blog.csdn.net/m0_46613023/article/details/114867406
今日推荐