c++ - 什么是 C 中 C++ 的新/删除等价物?

标签 c++ c new-operator delete-operator

C++ 中 C++ 的 new/delete 相当于什么?

还是在 C/C++ 中也一样?

最佳答案

C 中没有 new/delete 表达式。

最接近的等价物是malloc and free functions , 如果你忽略构造函数/析构函数和类型安全。

#include <stdlib.h>

int* p = malloc(sizeof(*p));   // int* p = new int;
...
free(p);                       // delete p;

int* a = malloc(12*sizeof(*a));  // int* a = new int[12];
...
free(a);                         // delete[] a;

关于c++ - 什么是 C 中 C++ 的新/删除等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2839551/

相关文章:

C 给数组加值? `array + value`

c++ - 删除动态数组的正确方法是什么?

c++ - sfgui 没有构建,看起来像是 opengl 的问题

c++ - 为什么内存比制表花费更多时间?

javascript - 如何从 firefox-addon/js-ctypes 调用 C++ 类实例?

c++ - 什么是 lhs/rhs,它在这个程序中是如何使用的?

c++ - 在c中后台运行线程

c++ - 用于编译 C/C++ 项目的远程基于 linux 的机器的工具

c++ - 从 operator new/delete 中获取对象的 RTTI 信息

c# - 在 C# 中传递对象的不同方法