求大神帮忙解释一下这个程序运行发生了什么 和解释代码中发生的内存泄漏问题
void foo(int *&a)
{
int *b = a;
int c = 5;
a = &c;
*b = 6;
}
int main()
{
int *a = new int;
foo(a);
cout << *a << endl;
return 0;
}
求大神帮忙解释一下这个程序运行发生了什么 和解释代码中发生的内存泄漏问题
void foo(int *&a)
{
int *b = a;
int c = 5;
a = &c;
*b = 6;
}
int main()
{
int *a = new int;
foo(a);
cout << *a << endl;
return 0;
}
内存泄漏问题:
int *a = new int;
使用 new 创建了一个指针,开辟了一块内存空间。在使用结束后要进行 delete 将指针释放。为避免野指针,还需将释放后的指针置空。
delete a;
a = NULL;