如何在不使用 "new" 关键字的情况下解除分配创建的对象的内存?
How should I deallocate the memory of an object created without using the "new" keyword?
如果我在不使用"new"关键字的情况下创建一个对象,我应该如何释放它的内存?
例:
#include "PixelPlane.h"
int main(void)
{
PixelPlane pixel_plane(960, 540, "TITLE");
//How should the memory of this object be freed?
}
pixel_plane
是一个具有自动存储持续时间的变量(即普通局部变量(。
当封闭范围的执行结束时(即当函数返回时(,它将被释放。
这是没有自动存储持续时间的局部变量的示例。
void my_function()
{
static PixelPlane pixel_plane(960, 540, "TITLE");
// pixel_plane has static storage duration - it is not freed until the program exits.
// Also, it's only allocated once.
}
下面是一个不是函数的封闭范围的示例:
int main(void)
{
PixelPlane outer_pixel_plane(960, 540, "TITLE");
{
PixelPlane inner_pixel_plane(960, 540, "TITLE");
} // inner_pixel_plane freed here
// other code could go here before the end of the function
} // outer_pixel_plane freed here
相关文章:
- 为什么我可以在不重载 "=" 运算符的情况下将一个对象分配给另一个对象?
- 在什么情况下,两个堆栈分配的结构对象的 this 点指向同一个地址?
- 使用指针在存在特征库的情况下动态分配 c++ 中的矩阵
- 如何在不知道对应关系的情况下在字符串中搜索字符并将其分配给另一个字符?
- 为什么它在不分配内存的情况下工作正常
- 如何在不使用 "new" 关键字的情况下解除分配创建的对象的内存?
- 在不释放所有动态分配的资源的情况下结束程序是否有风险
- 在不工作的情况下为数组分配指针,但反过来也可以
- 在这种情况下,数组a会被取消分配吗
- (C++)如何在不导致 mem 泄漏的情况下将指针传递到分配了'new'的函数?
- 在不放置新运算符的情况下,在预分配的内存上使用虚函数初始化对象 - 这可能吗?如果没有,为什么
- 如何在没有动态内存分配(堆)的情况下为可变大小数组(矢量)定义安全容器或视图
- 是否可以在不分配内存或复制数据的情况下构造对象?
- 有没有办法在不覆盖实际分配的情况下使用 vulkan 内部分配回调?
- 在以下情况下,是否可以分配未对齐的对象?
- 为什么在这种情况下不调用我的移动构造函数?(首先分配 r 值引用并创建对象)
- 我可以在不手动将它们分配在堆上的情况下存储iostreams集合
- C++没有等号,而是在不分配值的情况下进行编译
- 在哪些情况下,从 std::forward 分配比从 std::move 分配更可取?为什么
- 如何在不违反 const 限制的情况下动态分配模板类中的空间