关于delete 指针的一些看法

 
1,先测试以动态分配内存的指针k
int main()
{
	int* k = new int;
	delete k;

	//cout << "k本身的内容:" << k << endl;
	//cout << "k所指内容:" << *k << endl;
	//cout << "k的地址:" << &k << endl;

	system("pause");
	return 0;
}
分别测试上述三种结果。
a.  当运行程序时会发现,k是有结果的,那么可以得出delete k之后,系统为k自动分配了一组数据,那么接下来看这组数据是否是一个有效的地址;
b.此时会发现程序运行崩溃,可以得出这组数据并不是一个有效的地址
c.此时进行第三项
综上,可以得出delete k使k的原本所指的空间被销毁后,系统会自动给k分配一组数据,此时K指针指向一个无效的地址,但是指针k本身仍具有一个空间地址。

猜你喜欢

转载自blog.csdn.net/m0_37580835/article/details/79093049