如果我将内存动态分配给静态变量,我应该释放它还是会自动释放它

if i allocate memory dynamically to a static variable should i free it or will it be freed automatically

本文关键字:释放 我应该 内存 动态分配 变量 静态 如果      更新时间:2023-10-16

如果我将内存动态分配给静态变量,我应该释放它还是会自动释放它?

static int* p;
int f(){p = new int[50];}
destructor::~destructor{delete p;}

当然,你必须自己释放它!为什么它会自动释放它指向的内存?这就是动态分配的思想,你选择什么时候去掉内存!指针本身p将被销毁,但它指向的内存将保持不变,除非您先delete p(即释放它指向的内存)。它不会仅仅因为p static而改变任何东西。