删除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; 解决方法
ptr指向的内存被删除(即标记为空闲 – 内容可能仍然存在,但是,正如@JonTrauntvein所提到的,取决于内存可以用某种模式覆盖的实现 – 它永远不会被访问删除后). 指针本身不会改变并且仍然包含相同的值(即它指向的内存地址),但是删除后使指针无效是一个好习惯,即ptr = NULL;. 此内存使用new int在堆上分配,并且应始终使用delete释放. int *ptr = new int; – >内存在堆上分配 – amount:sizeof(int) – ptr指向该内存位置. *ptr = 7; – >值7放在分配的内存中. delete ptr; – >分配的内存(包含7)被删除(即标记为免费用于其他用途). prt仍然指向释放的内存位置.访问它是无效的,因此指针应设置为NULL. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |