动态分配使用的内存是堆中的
new int(1);// c++11 可以是{}
// new 数据类型(初始值)
单个对象
int* ptr = new int; // 动态分配一个整数
*ptr = 42;
std::cout << *ptr << std::endl;
delete ptr; // 释放内存
动态分配数组
int size = 5;
int* arr = new int[size]; // 动态分配整数数组
for (int i = 0; i < size; ++i) {
arr[i] = i;
std::cout << arr[i] << " ";
}
std::cout << std::endl;
delete[] arr; // 释放内存
C++11 引入了智能指针(Smart Pointers)的概念,如 std::shared_ptr 和 std::unique_ptr,它们提供了更安全和方便的动态内存管理方式,能够自动管理内存的释放,从而减少内存泄漏的风险。