![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
C++创建动态对象后指针删除问题
在c++primer书中看到这么一句“删除(delete)指针后,该指针变成悬垂指针。悬垂指针指向曾经存放对象的内存,但该对象已经不再存在了。...一旦算出了指针所指的对...
在c++ primer书中看到这么一句“删除(delete)指针后,该指针变成悬垂指针。悬垂指针指向曾经存放对象的内存,但该对象已经不再存在了。...一旦算出了指针所指的对象,立即将指针置为0,这样就非常清楚地表明指针不在指向任何对象”。
我的理解是,一旦创建了动态对象(int *p = new int(1024)),并且用指针指向之后,指针就会一直存在,delete指针p只是删除了动态对象,把它占用的动态内存归还给可用空间。所以指针一旦创建就不能删除了吗?
是“一旦删除了指针所指的对象”,打错了,不好意思。 展开
我的理解是,一旦创建了动态对象(int *p = new int(1024)),并且用指针指向之后,指针就会一直存在,delete指针p只是删除了动态对象,把它占用的动态内存归还给可用空间。所以指针一旦创建就不能删除了吗?
是“一旦删除了指针所指的对象”,打错了,不好意思。 展开
展开全部
在节目中,而不是使用新应用程序的内存空间,不能删除释放。空间
编程中经常使用的堆内存分配,常用的运算符是新的,这个时候一定使用delete函数来释放申请的内存。
需要遵循的原则:new和delete成对。只有一个是不正确的或非标准的字眼,瞬间能够编译,将有安全隐患;
/ /的/>一个malloc空间的方案,由函数free()释放的内存。
例子:
字符* PTR = NULL;
PTR =(CHAR *)malloc的(100 * sizeof(char)的的);
/ / ....
免费(PTR);
PTR = NULL;
2,使用新的应用程序的内存空间,你可以删除释放;(new和delete成对)
例: BR /> * =新的诠释;
/ / ....
删除/ /释放的空间单个int
注:
malloc和free的是,新的C + + / C语言的标准库函数/删除是C + +运算符。它们可以被用来为一个内存动态申请和释放内存。
无法用于内部数据类型的对象,maloc /免费要求,以满足动态对象。自动执行构造函数创建的对象,该对象被自动执行的消亡前的析构函数。是不能够执行的任务的构造函数和析构函数的malloc / free的库函数,而不是运营商,而不是编译器控制的能力范围内征收的malloc / free。
所以C + +语言需要一个完整的动态内存分配和初始化操作符new和delete操作符一个完整的清理和释放内存工作。注意新/ delete是不是库函数。
编程中经常使用的堆内存分配,常用的运算符是新的,这个时候一定使用delete函数来释放申请的内存。
需要遵循的原则:new和delete成对。只有一个是不正确的或非标准的字眼,瞬间能够编译,将有安全隐患;
/ /的/>一个malloc空间的方案,由函数free()释放的内存。
例子:
字符* PTR = NULL;
PTR =(CHAR *)malloc的(100 * sizeof(char)的的);
/ / ....
免费(PTR);
PTR = NULL;
2,使用新的应用程序的内存空间,你可以删除释放;(new和delete成对)
例: BR /> * =新的诠释;
/ / ....
删除/ /释放的空间单个int
注:
malloc和free的是,新的C + + / C语言的标准库函数/删除是C + +运算符。它们可以被用来为一个内存动态申请和释放内存。
无法用于内部数据类型的对象,maloc /免费要求,以满足动态对象。自动执行构造函数创建的对象,该对象被自动执行的消亡前的析构函数。是不能够执行的任务的构造函数和析构函数的malloc / free的库函数,而不是运营商,而不是编译器控制的能力范围内征收的malloc / free。
所以C + +语言需要一个完整的动态内存分配和初始化操作符new和delete操作符一个完整的清理和释放内存工作。注意新/ delete是不是库函数。
展开全部
是的,指针此时还是指向那个删除了的内存空间,但此时不能引用那内存的内容,因为这些内容是不定的,这个指针还可以重新赋值,重新指向另外的内存地址。指针也是变量,有它的作用域,离开作用域,它就被销毁了,那指针就不存在了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你不需要使用时就可以删除动态对象,局部指针变量在整个函数范围内有效,全局指针变量在整个程序内有效,不存在删除的问题
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询