因为我们是分配一个数组,C++知道应使用新的而不是新的标量数组版版。从本质上讲,新的[ ]操作符被调用,即使[ ]没有被放置在新的关键字的旁边。
请注意,因为这个内存是从一个不同的地方分配比用于固定数组的内存,数组的大小可以是相当大的。您可以运行上面的程序,并分配一个长度为1000000(甚至可能是100000000)的数组,没有问题。试试!正因为如此,程序需要在C++分配大量内存通常这样做动态。
一个动态数组作为指向数组第一个元素的指针而开始它的生命。因此,它不知道它指向的数组的大小。但是,它与一个腐朽的固定阵列,除了程序本身是负责释放它。
请注意,因为一个动态数组不知道它指向的数组的大小,一个动态数组不会在每个循环中工作。遗憾,那。
请注意,因为这个内存是从一个不同的地方分配比用于固定数组的内存,数组的大小可以是相当大的。您可以运行上面的程序,并分配一个长度为1000000(甚至可能是100000000)的数组,没有问题。试试!正因为如此,程序需要在C++分配大量内存通常这样做动态。
动态删除阵列
动态数组几乎是相同的固定数组
一个动态数组作为指向数组第一个元素的指针而开始它的生命。因此,它不知道它指向的数组的大小。但是,它与一个腐朽的固定阵列,除了程序本身是负责释放它。
请注意,因为一个动态数组不知道它指向的数组的大小,一个动态数组不会在每个循环中工作。遗憾,那。
初始化动态分配的数组
如果要将动态分配的数组初始化为0,则语法非常简单:
#include <iostream>
void foo(int *ptr)
{
*ptr = 6;
}
int main()
{
int value = 5;
std::cout << "value = " << value << '\n';
foo(&value);
std::cout << "value = " << value << '\n';
return 0;
本文讲解了C++中如何使用new[]操作符动态分配数组内存,以及如何通过delete[]正确释放内存避免内存泄漏。文中还介绍了动态数组与固定数组的区别,并提供了初始化动态数组的示例。
9079

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



