| new | malloc | |
| 无需显式指定内存块 | ✔ | |
| 分配内存失败时返回 | NULL | |
| 允许重载 | ✔ | |
| 能调⽤对象的构造函数/析构函数 | ✔ | |
| 返回类型 | 相应类型的指针 | void* |
malloc 和 free 更原始,更接近底层。在C++中,通常建议使用 new
new 和 delete 是操作符,而 malloc 和 free 是函数
- int* value = new int(5);
- int* arr = new int[10];
-
- delete value;
- delete[] arr;
- int* arr = (int*) malloc(10 * sizeof(int));
-
- free(arr);