在学new之前 我们写一段代码 int *p;*p=20;cout<<*p<<endl; 这段代码可以打印20; 但是并不需要申请内存,所以我想知道什么情况下才需要用new申请内存!!
3 回答
已采纳
onemoo
TA贡献883条经验 获得超454个赞
只有这几句,你确定能打印出20??
也许只有极小的可能性会打印出20。
你只是声明了一个int指针p,你没有让p没有指向任何有意义的东西!(当然准确地说,p指向一个随机地址;或者当p是全局变量时,p就是NULL)
然后你就向*p赋值? 这值会赋给一个随机地址(或是NULL地址)! 这有极大极大的可能性会导致程序segmentation fault。
只声明一个指针并不会为它分配内存的。 一般使用指针是让它指向有意义的地址,如指向既有的变量。或是用new申请一块内存给指针。
函数中的对象会随着函数的结束而销毁。 当你需要一个对象可以长期存在或是不想让它随函数销毁的话,就要用new申请一块内存。 不过要记住这块内存需要你手动管理生存期,不用时要记得delete掉。
- 3 回答
- 0 关注
- 1817 浏览
添加回答
举报
0/150
提交
取消