作者kkroy (☆㊣↖煞氣ㄟ阿喂↘ξ★)
看板C_and_CPP
標題Re: [問題] 亂數設SEED
時間Fri Jan 29 19:01:00 2010
很抱歉再次叨擾,
與版友們經過討論後,我稍微整理一下我的問題:
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