函数体里面new的问题

来源:互联网 发布:安卓锁机软件生成器 编辑:程序博客网 时间:2024/06/17 14:03

原问题:

#include <cstdio>int A(int *a){  a=new(int);  *a=1;}int main(){  int *x;  A(x);  printf("%d",*x);}


new出来的空间 在函数结束后 怎么就释放了呢。
我写的链表也用到了new,但是为什么没事

答:第一个程序,非引用形参实际是对应实参的一个副本,实参的值赋给形参,形参指向new的内存,而实参x未改变,可以考虑传递指针的地址int A(int **a)或者返回指针类型int *A()。而你链表中使用的是引用,引用形参直接关联到它绑定的对象,于是可以直接修改相应对象。


0 0
原创粉丝点击