2017-05-11 110 views
0

我已閱讀關於此主題的其他答案,但他們沒有幫助我。 我宣佈一個全球性的堅持:初始化元素不是常量

typedef stuck { 
    .... 
    } a; 

,並在之後我初始化這個結構的動態數組:

a * severalA= (a*)malloc (sizeof (a)*3); 

編譯我得到錯誤後:「初始化元素不是常量」上malloc類型(粗體)。 任何想法我在這裏失蹤? 我試圖在初始化之前添加const,但沒有成功。

+0

你不應該投射malloc的結果。並避免張貼僞代碼。 – Badda

+6

看起來你正在討論這個問題,是嗎? :D – ForceBru

+0

在函數內寫入 – BLUEPIXY

回答

0

你拼錯結構

您需要更改貼着結構

3

與靜態存儲時間的C語言對象必須使用常量表達式或含常量表達式骨料初始化進行初始化。

我的猜測是,您正在嘗試將幾個A定義爲全局變量 - 這是真的嗎?

在這種情況下,malloc()不是一個常量表達式,無法使用。