我們有一個應用程序,它使用的編程語言爲 ,支持Windows XP,Windows 2008,Windows 2003等多種操作系統。大多數情況下,應用程序的服務器部分安裝在Windows 2003/Windows 2008上,客戶端部分安裝在Windows XP上。客戶端和服務器通過命名管道通信。在不同的操作系統上的未初始化的C++結構
在客戶端,我們創建了C++結構並將其作爲IPC消息發佈到服務器。當我們在函數中聲明structre並且不初始化它時,它會從某些客戶端到達服務器,而不會從其他客戶端發生。客戶端安裝在不同的Windows XP機器上。
現在,如果我在該結構上調用ZeroMemory()
函數並將其初始化爲零,則IPC消息將從所有客戶端到達服務器。
我的問題是,爲什麼unitialzied structre在一些機器上工作,而不在別人上工作?對於未初始化的結構如何被操作系統自動初始化,我有很多好奇心。
發表一些代碼。你不能指望在沒有可能調用UB的情況下對未初始化的結構進行任何操作。 – dirkgently 2010-08-28 08:12:49