C++自定义数组类:实现与应用
1. 动态数组初始化与内存释放
在C++11中,我们可以使用列表初始化器来初始化动态分配的内置数组。例如:
int *gradesArray = new int[ 10 ]{};
这里的空花括号表示对每个元素使用默认初始化,对于基本类型,每个元素会被设置为0。花括号中也可以包含用逗号分隔的数组元素初始化列表。
释放动态分配的内置数组时,需要使用 delete [] 语句:
delete [] gradesArray;
如果指针指向一个内置对象数组,该语句会先调用数组中每个对象的析构函数,然后释放内存。如果上述语句中不包含方括号 [] ,且 gradesArray 指向一个内置对象数组,结果将是未定义的,有些编译器只会调用数组中第一个对象的析构函数。对 nullptr 使用 delete 或 delete [] 没有任何效果。
2. 内置数组的问题
指针式数组存在诸多问题,具体如下:
| 问题描述 | 详细解释 |
| ---- | ---- |
| 越界风险 | C++不会检查下标是否超出数组范围,程序容易访问数组边界外的内存。 |
| 下标范围固定 | 大小为 n </
超级会员免费看
订阅专栏 解锁全文
538

被折叠的 条评论
为什么被折叠?



