想问一下如果我写下面的程序运行程序会怎样
new int[5]; // without assigning it to a pointer.
编译通过。
但是会分配一个 5 * sizeof(int)
内存块吗?
如果是对象呢?
new some_obj_[5]; // without assigning it to a pointer.
some_obj_
的构造函数会被调用吗?
最佳答案
new int[5];//without assigning it to a pointer.
是的,将分配一个 5*sizeof(int)
内存块,但您无法访问,因为您没有保存指针。你会发生内存泄漏。
new some_obj_[5];//without assigning it to a pointer.
是的,将有 5*sizeof(some_obj_)
内存块已分配但您无法访问,因为您没有保存指针。 some_obj_
的默认构造函数将被调用 5 次。这应该是微不足道的验证。根据 some_obj_
的编码方式,您可能会发生内存泄漏。
关于c++ - 如果使用 'new' 来实例化对象而不将其分配给变量,会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14614875/