看板 C_and_CPP 關於我們 聯絡資訊
抱歉這個標題不太好,不過我不太清楚要怎麼描述 今天我先定義了一個結構為 typedef struct { BYTE drv_type; BYTE drv_mun; BYTE drv_size; BYTE drv_vol[512]; } VOLFS; 然後再宣告一個指標 static VOLFS *VolFs[2]; 請問該如何宣告時就給予初始值讓這陣列所有結構數值都為0呢? 記得標準ANSI-C應該在宣告全域變數且沒有給初始值時給予 0或 NULL 但似乎要看現在編譯器的處理方式(我使用GCC 3.4.4) 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.241.50
purincess:你這個陣列裡面就只有兩個指標 並沒有指到任何結構 07/18 17:12
purincess:也不存在"使結構數值都為0"的問題 07/18 17:12
purincess:如果你是要指標一開始初始為0 可以用...Fs[2] = {0}; 07/18 17:13
purincess:(NULL不一定是0就是XD) 07/18 17:13
NDark:用一個函式去return 07/18 17:33
kikiqqp:可是當我這樣宣告後後,我在函式內這樣寫 07/18 17:36
kikiqqp:VOLFS *fs1; fs1 = VolFs[1]; fs1->drv_size = 0; 07/18 17:38
kikiqqp:程式死當了 orz 07/18 17:39
NDark:因為你的函式內的fs1沒給記憶體 07/18 17:40
NDark:只是你說要用ansi c,所以你的情形反而很複雜,用c++就很好解 07/18 17:58