1. 程式人生 > >C++隨筆——懸空指標(dangling pointers)

C++隨筆——懸空指標(dangling pointers)

#include <iostream>
int main(void){
	
	double* p1 = new double(4.6);     //定義一個double型指標,	其指向的變數值為 4.6; 
	double* p2 = p1;                  //p2 也指向相同的記憶體區域

	std::cout << p1 << std::endl;
	std::cout << p2 << std::endl;
	*p2 = 3;                          //操作 p2讓 該記憶體 區域的值為 3;
	delete p1;                        //釋放 p1(p2)所指的記憶體區域,釋放之後 該記憶體區域的值 不定(未定)。稱指向未定義的記憶體區域的指標為懸空
	std::cout << p1 << std::endl;     //指標。
	std::cout << p2 << std::endl;
	std::cout << *p2 << std::endl;
        int a;
	std::cin >> a;
	return 0;
}