所謂野指標是指隨機指向一塊記憶體空間的指標,野指標導致的錯誤被稱為記憶體洩漏,但這種錯誤不是每次都會發生,因為野指標是隨機指向一塊記憶體空間,當野指標恰好指向的一塊記憶體空間是已經跟作業系統申請過位址的記憶體空間的話,就不會造成記憶體洩漏。造成野指標的原因是未對指標進行初始化,即指標沒有指向,野指標可以通過養成良好的變成習慣來
加以避免,我們以一段程式設計**來加以講解。
#include
//define null (void *) 0
int main()
memset(p,0,sizeof(int)); //即習慣(4)
scanf(「%d
」,p);
free(p); //(5)
p = null; //(6)
return 0; }
避免野指標需養成以下良好的程式設計習慣
(1);將未初始化的指標置為空(null,
null
是巨集定義,見上,代表記憶體
0的位址,並
且null是不允許進行任何操作的),將未初始化的野指標置為空,並不能解決野
指標的問題,而是為了引起我們的注意,將不能對該指標指向的空間做操作。
(2):當要往乙個指標指向的空間賦值的時候,一定要檢查是否對這個指標分配了空間
(3):當給指標分配好空間以後,一定要檢查是否成功的給指標分配了位址空間,即檢查
指標是否仍為空
(4):分配成功之後,要將分配的空間初始化一下
(5):在所用的空間使用完之後要釋放
(6):釋放之後,再次將指標置為空
指標的那些事
關於指標,大家都不陌生,無論學習c,c 亦或者其它程式語言,它都是不可或缺的。但是指標的定義 指標的用法 等等各種問題。我們都必須弄清楚,不能讓他阻礙我們前進的步伐 先說int p 這裡有必要說明一下 int 表示的定義乙個指向int 型別的指標變數 該變數記憶體裡是所指物件的位址,用 指標運算子 ...
引用和指標的那些事
2.3.1 引用 引用並非物件,相反的,它只是為乙個已存在物件所起的另外乙個名字。示例 int ival 1024 int refval ival tips 1.除2種情況外,引用的型別要和與之繫結的物件嚴格匹配 2.引用必須被初始化,且一旦初始化後,它和初始值物件一直繫結在一起,不能更改繫結的物件...
指標和引用那些事
指標和引用的概念 引用 乙個已定義變數別名 指標和引用區別 1 指標是乙個位址,指向記憶體中一塊儲存單元,它的值可以發生變化,可以指向其他儲存單元 引用是乙個變數別名,和原來變數是同乙個東西,即在記憶體中占有同一儲存單元,被編譯器實現為const指標,並且不可被多次初始化 重定義 話不多說,看下面例...