C++delete运算符

发布网友 发布时间:2022-04-23 03:48

我来回答

2个回答

热心网友 时间:2023-07-13 13:11

这里有两个概念你要区分清楚,变量的指针和变量本身。
指针变量其实是另一个变量,只不过它保存了当前变量的地址。当前变量的存在与否,并不会对指针变量造成任何影响。比如代码:
int * f = NULL; //f == NULL
f = new int; //f == f0 (0x.......)
delete f; //f == f0
最后一步delete之后,f对应的int变量会被撤销,但是这个操作并不会修改 f 的值,它不会变成NULL,而是原先它指向的int变量的地址(尽管它现在已经不存在了)。此时如果再写一个delete f;语句,它又会对刚撤销的变量的地址再作一次变量撤销操作,于是就会出问题了。

热心网友 时间:2023-07-13 13:11

因为 delete不会把指针变为空指针,指针还指向已经被删除了的内存

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com