作者chigi (,L>)
看板C_and_CPP
標題[問題] 有關global structure variable的初始
時間Tue Mar 19 13:32:44 2013
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
問題(Question):
請問 我在global中宣告了從外部API中的struct
struct API_MBUF{..} 這部分在別人的code中
然後我在程式裡宣告
API_MBUF a[2]
請問這個宣告之後要做什麼初始化的設定嗎?
API給的sample code只使用到memset來把這裏面的東西填上值,
但是在副程式裡發現變數a值的值無法被修改,
會變成a[0]={6000,300,2000}之類的數值,
而a[1]會是{0,0,0}, 都不能被修改(包括用memset去給預設值)..
我期望的正常狀況應該是,
a[0]在用memset之後應該會按照預設值填寫,
並且可以正常修改值..
請問我是否忽略了什麼步驟? 譬如說malloc之類的?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.24.50.194
→ linotwo:global 變數會被設成所有位元皆為 0 並且呼叫其建構子。 03/19 17:04
→ linotwo:需要注意,建構子被呼叫的順序不能被確定。 03/19 17:05
→ chigi:好奇怪..照這樣說的話,看起來應該沒啥問題才對.. 03/19 18:25
→ chigi:後來受不了了,全部用local variable.. 03/19 18:25