全局指针或者静态指针分配的资源的释放
这里以静态指针来说明问题。
代码1:
{
static int *p = 0;
p = new int;
}
代码中的静态指针p分配资源后没有释放,而且其在程序运行期间一直是Reachable。那么程序结束后p所指向的资源会被系统回收么?
代码2:
{
static int *p = 0;
for (int i=0; i<10; i++)
p = new int;
}
这段代码分配的10个资源中,只有最后一个在运行期间是Reachable。那么程序结束后这10个资源都会被系统回收,还是只有最后一个才会被系统回收?
[解决办法]
程序结束后,所有进程相关资源都会被回收。
[解决办法]
這種東西看操作系統的,如果是在 WINDOWS 中,應用程序是回收的(WIN驅動程序不清楚是否回收),單片機的話,不保障回收的.寫c/C++代碼,還是要求程序員自己回收,而不是把回收問題交給操作系統。
[解决办法]
进程退出后,相关内存资源是会释放掉。