加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

删除C中的操作

发布时间:2020-12-16 10:12:23 所属栏目:百科 来源:网络整理
导读:我不明白删除是什么意思. 例如,在下面的代码中,删除ptr;所以删除指针变量ptr或删除指向的内存ptr? int *ptr = new int; *ptr = 7; delete ptr; 解决方法 so the pointer variable ptr is deleted or the memory ptr pointed to is deleted? ptr指向的内存被
我不明白删除是什么意思.

例如,在下面的代码中,删除ptr;所以删除指针变量ptr或删除指向的内存ptr?

int *ptr = new int; 
*ptr = 7;  
delete ptr;

解决方法

so the pointer variable ptr is deleted or the memory ptr pointed to is
deleted?

ptr指向的内存被删除(即标记为空闲 – 内容可能仍然存在,但是,正如@JonTrauntvein所提到的,取决于内存可以用某种模式覆盖的实现 – 它永远不会被访问删除后).

指针本身不会改变并且仍然包含相同的值(即它指向的内存地址),但是删除后使指针无效是一个好习惯,即ptr = NULL;.

此内存使用new int在堆上分配,并且应始终使用delete释放.

int *ptr = new int;

– >内存在堆上分配 – amount:sizeof(int) – ptr指向该内存位置.

*ptr = 7;

– >值7放在分配的内存中.

delete ptr;

– >分配的内存(包含7)被删除(即标记为免费用于其他用途). prt仍然指向释放的内存位置.访问它是无效的,因此指针应设置为NULL.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读