[問題] 有關global structure variable的初始

看板C_and_CPP (C/C++)作者 (,L>)時間13年前 (2013/03/19 13:32), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
開發平台(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

03/19 17:04, , 1F
global 變數會被設成所有位元皆為 0 並且呼叫其建構子。
03/19 17:04, 1F

03/19 17:05, , 2F
需要注意,建構子被呼叫的順序不能被確定。
03/19 17:05, 2F

03/19 18:25, , 3F
好奇怪..照這樣說的話,看起來應該沒啥問題才對..
03/19 18:25, 3F

03/19 18:25, , 4F
後來受不了了,全部用local variable..
03/19 18:25, 4F
文章代碼(AID): #1HH_X_rq (C_and_CPP)
文章代碼(AID): #1HH_X_rq (C_and_CPP)