※ 引述《datagram ()》之銘言:
: int main()
: {
: int a=4;
: float uu[a]={0};
: printf("%f",uu[3]);
: return 0;
: }
: 這個寫法有錯 ,應該是錯在 float uu[a]={0} 這一行
: 為什麼已經令了 a=4 ,卻不能 把a之值 放入 uu[4]呢?
: 有沒有什麼方法可以解決這種問題?
: 因為我在寫 header檔時, function(X,X,G)
: G是一個int,要丟進此function運作,而此function中設了一個array
: int AA[G]={0}; ==>這會出現錯誤。這種錯誤跟上面也是一樣的錯誤。
實際上的編譯結果會讓uu[a]變成uu[4],因為a是常數(如果你編譯器不笨的話)
但uu[4]所能索引的範圍是uu[0]~uu[3],因此uu[4]是有問題的
而你第2個問題必須要用動態記憶體配置,因為你的G是變數
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.211.15.82