如果使用'new'来实例化一个对象而不将其赋值给变量会发生什么?

ale*_*ang 4 c++ new-operator

想知道如果我写下以下内容并运行程序会发生什么.

new int[5]; // without assigning it to a pointer.
Run Code Online (Sandbox Code Playgroud)

汇编通过了.

但是会5 * sizeof(int)分配一大块内存吗?

如果它是一个对象怎么办?

new some_obj_[5]; // without assigning it to a pointer.
Run Code Online (Sandbox Code Playgroud)

是否会some_obj_调用构造函数?

Nik*_*lis 8

new int[5];//without assigning it to a pointer.
Run Code Online (Sandbox Code Playgroud)

是的,5*sizeof(int)因为你没有保存指针,所以会分配一块内存,但是你无法访问.你会有内存泄漏.

new some_obj_[5];//without assigning it to a pointer.
Run Code Online (Sandbox Code Playgroud)

是的,5*sizeof(some_obj_)因为你没有保存指针,所以会分配一大块内存,但是你无法访问.默认构造函数some_obj_将被调用5次.这应该是微不足道的验证.根据some_obj_编码方式,您可能会发生内存泄漏.