這裏的另一個成員一個類的成員指針被garbaged是我現在有這個問題:當數據被複制到
class Header{
//something here
};
class Packet{
public:
Packet(Header* _header){
header = _header;
};
char buf[1000];
Header* header;
}
因此,它看起來那麼簡單。當我創建一個Header(_header),然後用它作爲參數來創建一個數據包時,在調試器中一切都很好:數據包的指針頭確實指向之前創建的_header。
現在,我開始加載1000個字符到buf。對於前幾百個字符,事情仍然看起來不錯。但是,當複製到buf的字符數量變大(大約800)時,數據包的指針頭突然變得亂碼。不知道爲什麼。後來當我嘗試訪問創建的數據包的頭部時,這是一個垃圾地址,程序崩潰了。
我嘗試了兩種加載buf的方式(通過strcpy
和一個一個的複製,如buf[i]=...
),但仍然面臨同樣的問題。
任何可以幫助澄清或解決這個問題嗎? 謝謝
無論'_header'指向可能超出範圍。 – chris 2013-05-05 03:19:36
Barmar,你是如何編輯代碼的?我試圖格式化它時很掙扎。 – Simo 2013-05-05 03:22:50
@Simo我只是增加了空格。注意TAB字符,他們不正確格式。 – Barmar 2013-05-05 03:23:24