✏️ 纠错
第 229 题 / 共 301 题
第3题 在C++中,int arr[3][4] 和int* arr = new int[12]均可模拟一个3行4列的二维数组。关于这两种方式,下面说法错误的是( )。
📝 题目解析

【考纲知识点】栈内存与堆内存的区别、动态内存管理

【正确答案】D

【题目解析】

选项A,int arr[3][4] 是在栈上分配空间,栈空间的大小是有限的,所以适合数组较小的情况,该说法正确。

选项B,int* arr = new int[12] 使用new运算符在堆上分配空间,堆空间相对较大,数组较大时也适用,该说法正确。

选项C,int arr[3][4] 和int* arr = new int[12] 申请的内存空间都是连续的,该说法正确。

选项D,int arr[3][4] 在栈上分配的内存会在作用域结束时自动释放,而int* arr = new int[12] 在堆上分配的内存需要使用delete[] arr 手动释放,不能自动释放,该说法错误。

本题的正确答案为D。