8new和delete

发布时间 2024-01-11 23:11:10作者: 二氧化硅21

new和delete

new和malloc区别,delete和free区别

  • malloc和free,是C的库函数;new和delete,是运算符。
  • new不仅内存开辟,还能做内存的初始化,返回指针,如果开辟失败,抛出异常bad_alloc,而不是返回空指针;malloc只能进行内存开辟,返回指针,如果开辟失败,返回nullptr。malloc需要类型强制转换,new不需要。
  • new有多少种?
int main()
{
    int* p1 = new int(10);
    int* p2 = new(nothrow)int;
    const int* p3 = new const int(40);
    //定位new,固定位置new一个对象
    int data = 0;
    int* p4 = new(&data) int(20);
    cout << data;
}