<C++>關於array可以放多大的問題... |
尚未結案
|
titan1226
一般會員 發表:3 回覆:4 積分:1 註冊:2003-09-16 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 比如 long int array[1000000]; for(int i=0;i<1000000;i ) { array[i]=i; } 奇怪在編譯時,怎樣定義才可以達到1*E6呢?titan1226 你好: 請改用動態配置記憶體的方法 < class="code"> long int *array=new long int[1000000]; // ...Do something... delete array; -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
titan1226
一般會員 發表:3 回覆:4 積分:1 註冊:2003-09-16 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 恩~我試著去改改看~先謝謝~ 再問一下,對於1*E6 (10的六次)可以宣告用int就好ㄇ?還是要用到long才夠呢?因為我只要到1*E6程式就不能跑了 titan1226 你好: (1)一般來說,目前只要是在 Win32 的編譯器 (C/C 編譯器),對於「int」這 個基本型態的預設佔記憶體數是 32 bit,也就是說,它可以表示數字的範圍 是 -2^31 ~ 2^31-1 (-2147483648 ~ 2147483647) (2)在 Win32 的編譯器 (C/C 編譯器),對於「long」這個基本型態的預設佔 記憶體數是和「int」一樣的,也就是說,它們可以表示數字的範圍是一樣的 (3)在早期 M$ DOS 的環境下的編譯器,對於「int」這個基本型態的預設佔記憶 體數是 16 bit,也就是說,它可以表示數字的範圍是 -2^15 ~ 2^15-1 (-32768 ~ 32767) (4)在早期 M$ DOS 的環境下的編譯器,對於「long」這個基本型態的預設佔記 憶體數是 32 bit,也就是說,它可以表示數字的範圍是 -2^31 ~ 2^31-1 (-2147483648 ~ 2147483647) (5)所以,假設你要表示的數字是 1*10^6 的話,不管在 Win32 或 M$ DOS 底下 使用「long」這個基本型態應該都是足夠的,也就是說,可以這樣寫 long lSize=1000000; long *array=new long[lSize]; // ...Do something... delete array;-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
titan1226
一般會員 發表:3 回覆:4 積分:1 註冊:2003-09-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |