请教大神 ptr = new int;为什么要为指针分配内存?
答案:1 悬赏:10 手机版
解决时间 2021-11-30 07:22
- 提问者网友:沉默的哀伤
- 2021-11-29 10:28
请教大神 ptr = new int;为什么要为指针分配内存?
最佳答案
- 五星知识达人网友:渡鹤影
- 2021-11-29 11:58
ptr = new int; //在堆中开辟一块int大小的内存空间,并令指针ptr指向它
堆中的内存空间在整个程序运行期间一直可用,直到用delete释放它。
ptr = &len; //令ptr指向形参len的地址
这是典型的错误,因为形参属于函数中的局部变量,它的生命周期仅限于函数内。当函数结束后它的栈空间就被回收了,而此时ptr指针仍然持有该位置的引用,这是非常危险的,如果之后程序通过ptr指针修改该位置的内容,轻则导致数据错误,重则导致程序崩溃。
堆中的内存空间在整个程序运行期间一直可用,直到用delete释放它。
ptr = &len; //令ptr指向形参len的地址
这是典型的错误,因为形参属于函数中的局部变量,它的生命周期仅限于函数内。当函数结束后它的栈空间就被回收了,而此时ptr指针仍然持有该位置的引用,这是非常危险的,如果之后程序通过ptr指针修改该位置的内容,轻则导致数据错误,重则导致程序崩溃。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯