我需要释放ptr吗?如果是这样,怎么样?
#include <iostream>
using namespace std;
void printFromPtr(int *ptr);
int main()
{
int a = 3;
int numPrint = 10000;
for (int i = 0; i < numPrint; i++)
{
printFromPtr(&a);
}
}
void printFromPtr(int* ptr)
{
cout << *ptr << endl;
}
Run Code Online (Sandbox Code Playgroud)
Rem*_*eau 11
该函数正在接收来自调用者的指针,并且不知道指向的内存是如何分配的,因此它没有尝试释放它的业务.只有调用者知道它是如何分配的,所以只有调用者知道如何释放它.
在此示例中,调用者将指针传递给a未动态分配的局部变量,因此无需手动释放.当变量超出范围时,变量将消失.