如果我将内存动态分配给静态变量,我应该释放它还是会自动释放它
if i allocate memory dynamically to a static variable should i free it or will it be freed automatically
如果我将内存动态分配给静态变量,我应该释放它还是会自动释放它?
static int* p;
int f(){p = new int[50];}
destructor::~destructor{delete p;}
当然,你必须自己释放它!为什么它会自动释放它指向的内存?这就是动态分配的思想,你选择什么时候去掉内存!指针本身p
将被销毁,但它指向的内存将保持不变,除非您先delete p
(即释放它指向的内存)。它不会仅仅因为p
static
而改变任何东西。
相关文章:
- 我应该使用什么来代替void作为变体中的替代类型之一
- boost::asio::steady_timer()与sleep()我应该使用哪一个
- 我应该实现右值推送功能吗?我应该使用std::move吗
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 我应该删除矢量<short>吗?
- 我应该如何修改此代码以使用给定字符串中的字母打印菱形图案
- 我应该在锁定TBitmap画布后解锁它吗
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 我应该避免多重实现继承吗
- 为了方便起见,我应该避免公开私有字段变量吗
- 我收到同义重复编译器错误。我应该如何修复"类型"X"的参数与类型"X"的参数不兼容?
- 违反const正确性:我应该现实地期待什么问题
- 我应该如何表示我拥有的连续元素序列?
- 我应该将除 .cpp 以外的其他文件添加到 git 中吗?
- 我应该如何从 stdin C++ 中读取可变长度的格式字符串?
- 我有一个对象,它将在整个程序的持续时间内实例化,但一个类成员不会,我应该动态分配它吗?
- 我应该如何捕捉out_of_range异常?
- C++ 返回异常,我应该释放资源吗?
- 如果我将内存动态分配给静态变量,我应该释放它还是会自动释放它
- 我应该释放内部分配的MFT输出缓冲区的返回IMFSample吗