今天在写程序的时候,用到了delete运算符,发现了一点小问题。
#include <iostream>
int main() {
auto p = new int;
auto ptr = p;
std::cout << p << ' ' << ptr << '\n';
delete p;
std::cout << p << ' ' << ptr;
}
这个代码按照道理来说不应该是四个相同的值吗?可是事实证明我错了…
下面是在VS2017环境下编译的
下面是在DevC++下编译的
下面是在Ubuntu-Win10子系统下用g++编译的
好吧,估计是VS的事了,以后会多加注意的…
这个还没完呢!!!
你觉得用free函数会怎样,那么答案就是——不会改变!!!!
真的好坑!!!
以后用VS编程要小心一点了…