什么情况下才需要用new申请内存?

在学new之前   我们写一段代码  int *p;*p=20;cout<<*p<<endl;   这段代码可以打印20;  但是并不需要申请内存,所以我想知道什么情况下才需要用new申请内存!!

爲吾之梦想
浏览 1834回答 3
3回答

onemoo

只有这几句,你确定能打印出20??也许只有极小的可能性会打印出20。你只是声明了一个int指针p,你没有让p没有指向任何有意义的东西!(当然准确地说,p指向一个随机地址;或者当p是全局变量时,p就是NULL)然后你就向*p赋值?  这值会赋给一个随机地址(或是NULL地址)!  这有极大极大的可能性会导致程序segmentation fault。只声明一个指针并不会为它分配内存的。 一般使用指针是让它指向有意义的地址,如指向既有的变量。或是用new申请一块内存给指针。函数中的对象会随着函数的结束而销毁。 当你需要一个对象可以长期存在或是不想让它随函数销毁的话,就要用new申请一块内存。 不过要记住这块内存需要你手动管理生存期,不用时要记得delete掉。

dxyz

*号那个应该是指针变量吧?没学过啊,围观一下吧。

慕粉3187274

目前的情况下 new申请空间一般不会失败,那个错误处理也是为了以防万一用的 要么你就在try块里自己扔出一个异常来模拟一下
打开App,查看更多内容
随时随地看视频慕课网APP