一、动态数组

  为了支持一次性为很多元素分配内存的需求,C++语言和标准库提供了两种一次分配一个对象数组的方法。C++语言定义了另一种new表达式语法,可以分配并初始化一个对象数组。标准库中包含了一个名为allocator的类,允许我们将分配和初始化分离。使用allocator通常会提供更好的性能和更灵活的内存管理能力。

  大多数应用都没有直接访问动态数组的需求。因此大多数应用应该使用标准库容器而不是动态分配的数组,使用容器更为简单、更不容易出现内存管理错误并且可能有更好的性能。

 

1、new和数组

  为了让new分配一个对象数组,我们要在类型名之后跟一对方括号,在其中指明要分配的对象的数目,方括号中的大小必须是整型,但不必是常量。new分配要求的数量并(假定分配成功后)返回指向第一个对象的指针。也可以用一个表示数组类型的类型别名来分配一个数组。。

 1 #include <iostream>
 2 #include <memory>
 3 #include <string>
 4 
 5 int main()
 6 {
 7 
 8     int *p = new int[10]; // p指向分配的第一个int
 9 
10     typedef int arrT[10]; // arrT表示10个int的数组类型
11     int *p2 = new arrT; // 分配10个int的数组,p2指向第一个int
12     return 0;
13 }
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-10
  • 2021-10-15
  • 2022-12-23
猜你喜欢
  • 2021-11-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-18
相关资源
相似解决方案