C++的内存管理
int* ptr = new int; // 分配一个整数的内存 *ptr = 42; delete ptr; // 释放内存int* arr = new int[10]; delete[] arr;int* ptr = (int*)malloc(sizeof(int)); *ptr = 42; free(ptr);
Last updated
int* ptr = new int; // 分配一个整数的内存
*ptr = 42;
delete ptr; // 释放内存int* arr = new int[10];
delete[] arr;int* ptr = (int*)malloc(sizeof(int));
*ptr = 42;
free(ptr);Last updated
void someFunction() {
int* ptr = new int;
// 没有释放内存,导致内存泄漏
}int* ptr = new int;
delete ptr;
// ptr 现在是悬空指针
int value = *ptr; // 错误,可能导致崩溃#include <memory>
void smartPointerExample() {
std::unique_ptr<int> uniquePtr(new int);
*uniquePtr = 42;
std::shared_ptr<int> sharedPtr1(new int);
std::shared_ptr<int> sharedPtr2 = sharedPtr1; // 两个 shared_ptr 共享资源
}