記錄以下C++中空指針和野指針

空指針

即指針變量指向內存中標號爲0的空間,一般用來初始化指針變量。

int* p = NULL;

需要注意的是:
空指針指向的內存是不可訪問的。即在使用時候首先要對其賦值。纔可以使用。

	int* p = NULL;
	int k[] = { 1,2,3 };
	int n = 1;
	p = &n;   //對其重新賦值,讓它指向n的地址。
	//p = k;   因爲數組的名稱本身就是首地址。所以不用寫取址符
	cout << *p << endl;

否則會報錯誤。原因是因爲空指針指向的是編號爲0的空間。而編號內存0-255爲系統佔用內存,是不允許用戶訪問的。

野指針

即指向非法內存空間的指針。對其操作會報錯。在寫程序的過程中一定要格外注意。


	//野指針  指針指向非法的內存空間
	int* a = (int* )0x1100;
	//cout << *a << endl;  報錯  

原因是因爲這個地址是隨便寫的,並不是我們申請的。所以會報錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章