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