VS2010 編譯報 CX0069: error: variable requires stack frame;Ubuntu GCC 僅警告 assignment makes pointer from integer without a cast。
代碼 int *p = (int *)0x00bef95c; 將上一次運行觀察到的變數 i 地址硬編碼。現代作業系統啟用 **ASLR (Address Space Layout Randomization)**,每次程式載入的虛擬記憶體佈局不同,該地址極大機率無效或屬於其他進程/保護頁,導致寫入時觸發段錯誤或編譯器診斷。
MSVC 對可疑指針運算檢查更嚴格,偵測到常數轉指針且無符號擴展視為錯誤;GCC 僅提示類型轉換風險。
若需共享記憶體,使用命名共享記憶體、記憶體映射檔或 IPC 機制;切勿硬編碼地址。