程式出現錯誤,可是我不知道是什麼意思?? |
答題得分者是:dllee
|
黑輪
中階會員 發表:135 回覆:188 積分:64 註冊:2004-01-29 發送簡訊給我 |
我用三維陣列後,就出現這個訊息
int data[10000][21600][2]={0};
int y_cord=i;
int white_point_number=end_point-rlation_point;
int x_coord=rlation_point+(int)(white_point_number*0.5+0.5);
data[x_coord][y_cord][1]=white_point_number;
以上是我部份的程式碼~~
我是想用三維的陣列來存資料(x座標,y座標.點數)
感謝各位哦~~~
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
引言: int data[10000][21600][2]={0}; int y_cord=i; int white_point_number=end_point-rlation_point; int x_coord=rlation_point (int)(white_point_number*0.5 0.5); data[x_coord][y_cord][1]=white_point_number;不知道您有沒有算過您那個三維陣列所需的記憶體大小是多少呢? 10000 * 21600 * 2 * (int 占 4 bytes) = 1,728,000,000 要 1.7GB 的記憶體耶!! 如果您的記憶體(實體記憶體 虛擬記憶體)夠大應該是還可以跑,只是運作時,會有大量的 Memory Swap 的動作,即資料在實體與虛擬之間交換,應該會蠻傷硬碟的... OK 這都是題外話。 基本上您的程式語法沒有問題(所以可以執行),而由您提供的片斷程式會有問題的就是 data[x_coord][y_cord][1]=white_point_number; 中 x_coord 與 y_cord 的數值,如果比您設的 10000 或 21600 還大,那肯定是會出錯的,因為您要求的記憶體太大了,記憶體超用所導致的影響會更容易顯現。 您可以在此行設中斷,查看 x_coord 與 y_cord 的數值。 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
黑輪
中階會員 發表:135 回覆:188 積分:64 註冊:2004-01-29 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |