作者akalashnikov (ak)
看板C_and_CPP
標題Re: [FAQ&FME] C 語言新手十誡
時間Thu Aug 25 15:29:16 2005
但是...3000000000已經超過int的範圍
所以就算放在heap挖這麼大也無濟於事
compile會出現warning而不是error
會過,但是實際上用不了這麼多
15:29:54 root@root [~] #>> g++ 1.cpp
1.cpp: In function `int main()':
1.cpp:2: warning: this decimal constant is unsigned only in ISO C90
1.cpp:2: warning: integer overflow in expression
※ 引述《jenallen (reborn)》之銘言:
: 還有一個問題也蠻常見的...
: 為啥陣列配太大就會出錯阿?如: int array[3000000000];
: Ans: 這種方法會將資料配置在function stack中,而function stack的大小
: 並不大,若有大陣列需求,請將其配在heap。如:
: int *array=new int[3000000000];
: 或者直接使用C++標準庫中的vector<T>類別。
: 嗯...其實記憶體管理就可以寫一堆勒...另外,從無到有建構FAQ不免太辛苦,
: 看看網路上的C/C++ FAQ已經蠻多內容了,不如擇優將其翻譯後加入吧? :)
: C: http://www.eskimo.com/~scs/C-faq/top.html
: C++: http://www.parashift.com/c++-faq-lite/
: ...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.141.1
1F:→ akalashnikov:執行時就會爛掉:Abort (core dumped) 140.113.141.1 08/25
2F:→ clifflu:沒事用樹幹寫程式不太好喔 XD140.112.212.129 08/25
3F:→ akalashnikov:只是測試一下... 140.113.141.1 08/25
4F:→ jenallen:sorry, 應該挖小一點...140.116.163.119 08/25
5F:→ UNARYvvv:不是樹根嗎??? 61.70.137.117 08/25
6F:→ akalashnikov:對,是樹根,我在想哪邊有 trunk 03/29 20:35