迷途指標,從百度百科上摘抄的,語言很幽默

2021-09-08 03:07:50 字數 1219 閱讀 7118

迷途(stray)指標,也被稱為野(wild)指標或懸浮(dangling)指標,是指將delete 用於指標(從而釋放它指向的記憶體),但沒有將它設定為空時引發。如果隨後你在沒有重新賦值的情況下使用該指標,後果將是不可預料的:程式崩潰算你走運。

這個程式故意建立了乙個迷途指標:

typedef unsigned short int ushort;

#include

int main ()

ushort *pint = new ushort ;

*pint = 10 ;

std::cout << "pint:" << *pint << std::endl ;

delete pint ;

long *plong = new long ;

*piong = 90000 ;

std::cout << "*plong:" << *plong << endl ;

*pint = 20 ;

std::cout << "pint:" << *pint << std::endl ;

*pint = 20 ;

std::cout << "*pint:" << *pint << endl ;

std::cout << "*plong:" << *pint << endl;

delete plong ;

return 0 ;

輸出:*pint:10

*plong:90000

*pint:20

*pint :65556

pint宣告為乙個ushort指標,並將其指向使用new分配的記憶體,將10儲存到pint指向的記憶體中,對指標使用delete後,pint將成為乙個迷途指標。

接著宣告了乙個新的指標plong,它指向new分配的記憶體,將90000儲存到plong指向的記憶體中。它指向的是pint原來指向的記憶體塊,帶來麻煩的是 pint = 20,它將20賦值到pint原先指向的記憶體,(pint被釋放後不再指向任何合法的記憶體,它仍可能指向原來的記憶體塊)將覆蓋plong指向的記憶體。這被稱為重踏指標,它通常是使用迷途指標產生的不幸後果。

總之。對指標使用delete後就不要再使用它。雖然這個指標仍指向原來的記憶體區域,但編譯器可能已經將其他資料儲存在這裡。不重新給這個指標複製就再次使用它可能導致程式崩潰;更糟糕的是,程式可能表面上執行正常但是過不了幾分鐘後就崩潰了。這被稱為定時炸彈,可不是好玩的。為了安全起見,刪除指標後,

把其設定為空.這樣便解除了它的武裝。

從百度百科汲取百度優化的精髓

2 谷歌 pr值 3 標題title 從這個title設計,我們可以學習到以下幾點 內頁的title要簡潔名了 一般 網頁標題 特徵描述 就行。4 keywords標籤 在谷歌中查詢顯示有20多個外鏈,可以用很少來形容。但是為何還能有如此好的排名呢?這說明反向鏈結雖然是非常重要的seo因素,但是不是...

AnimateWindow 百度百科

animatewindow 開放分類 程式設計 計算機 api 函式功能 該函式能在顯示與隱藏視窗時能產生特殊的效果。有兩種型別的動畫效果 滾動動畫和滑動動畫。函式原型 bool animatewindow hwnd hwnd,dword dwtime,dword dwflags 引數 hwnd 指...

WCF百度百科

根據微軟官方的解釋,wcf 之前的版本名為 indigo 是使用託管 建立和執行面向服務 service oriented 應用程式的統一框架。它使得開發者能夠建立乙個跨平台的安全 可信賴 事務性的解決方案,且能與已有系統相容協作。wcf是微軟分布式應用程式開發的集大成者,它整合了.net平台下所有...