✏️ 纠错
第 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。