看板 C_and_CPP 關於我們 聯絡資訊
很抱歉再次叨擾, 與版友們經過討論後,我稍微整理一下我的問題: 1. 為何在全域時 initial compiler會過assign不行? ex: (1.) long *idum = (long *)malloc(sizeof(long)); //// OK! (2.) long *idum; idum = (long *)malloc(sizeof(long)); //// Compiler Error 2. 承上,又為何initial後,idum 指向得到的一塊記憶體空間, 這塊記憶體空間不能在全域被assign? ex: long *idum = (long *)malloc(sizeof(long)); *idum = SEED; //// Compiler Error 而必須寫在main內: ex: long *idum = (long *)malloc(sizeof(long)); int main(){ ...... *idum = SEED; .... } 3. 全域應該不只有定義跟宣告吧? 做像malloc、數學運算(eg: sin(), cos(), exp()等)應該無礙。 不好意思,我程度不好,希望各位指點一下。謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.144.18 ※ 編輯: kkroy 來自: 140.113.144.18 (01/29 19:06)
loveme00835:可以在定義的時候給初值阿=_=||| 01/29 19:47
loveme00835:但是你在全域呼叫printf就不能了 01/29 19:48
akasan:樓上的, 放行int i = printf("XD\n");在全域看看 01/29 20:05
loveme00835:那樣就是定義了阿~ 01/29 20:27
LPH66:只問一個最簡單的問題: 這個敘述什麼時候要執行? 01/29 20:28
loveme00835:只呼叫函式的話是行不通的 01/29 20:29
kkroy:瞭解了,謝謝 LPH66,如果放在global不是initial 01/29 20:36
kkroy:不知道何時要執行assign的動作,對吧? 謝謝你! 01/29 20:36