動態配置記憶體-->二維矩陣有錯 |
缺席
|
iii0628
一般會員 發表:50 回覆:46 積分:19 註冊:2005-04-04 發送簡訊給我 |
請問我程式這樣寫法,為何編譯時會錯勒。是我動態配置記憶體錯誤了嗎???
我一定要按照SWITCH這種寫法,該如何修改,謝謝
printf("\nProduct Type: 0 , 1 , 2\n\n"); printf("Enter product type : "); scanf("%d",&product_type); switch( product_type ) { case 0:Col = 100; Row=50; break; case 1: Col = 200; Row=100; } int **rawdata_array = new int *[Col][Row]; |
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
引言: 請問我程式這樣寫法,為何編譯時會錯勒。是我動態配置記憶體錯誤了嗎??? 我一定要按照SWITCH這種寫法,該如何修改,謝謝此處有個相關的連結,您可參考看看。 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=69169 RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####printf("\nProduct Type: 0 , 1 , 2\n\n"); printf("Enter product type : "); scanf("%d",&product_type); switch( product_type ) { case 0:Col = 100; Row=50; break; case 1: Col = 200; Row=100; } int **rawdata_array = new int *[Col][Row];此處不正確! 動態記憶體配置,每次只能得到所需型態的一維陣列。所以您上述的寫法並不正確,應略加修改如下: int **rawdata_array = new int *[Row]; for (int k=0; k |
iii0628
一般會員 發表:50 回覆:46 積分:19 註冊:2005-04-04 發送簡訊給我 |
RichTop你好:謝謝你的回應,我現在將程式修改如下為何會出現
[C++ Error] File1.c(77): E2451 Undefined symbol 'new'
[C++ Error] File1.c(77): E2379 Statement missing ;
[C++ Error] File1.c(80): E2379 Statement missing ;
[C++ Warning] File1.c(81): W8069 Nonportable pointer conversion
這些錯誤
int **rawdata_array; int p75_startX=53,p75_startY=42,p75Y=420; int p75X=560,Row,Col,active_code=1,non_active_code=0; if ( choose == 'n' ) { for(y=p75_startY ; y <= (p75_startY p75Y) ; y ) { rawdata_array = new int *[Row]; for ( x=p75_startX ; x <= (p75_startX p75X) rawdata_array[x] = new int [Col]; rawdata_array[x] = active_code; } active_code = non_active_code; } } |
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
iii0628 您好: 感覺上您好像要產生一個二維陣列,並分別將每一列交互的填入0與1。
您原先的寫法,會產生出太多的二維陣列。
至於錯誤訊息(您應該是用C++編譯吧?),無法經由程式片段得知,所以您先修改,看看是否錯誤能獲致改善。
int **rawdata_array; int p75_startX=53,p75_startY=42,p75Y=420; int p75X=560,Row,Col,active_code=1,non_active_code=0; char choose; Row = p75Y - p75_startY 1; Col = p75X - p75_startX 1; if ( choose == 'n' ) { rawdata_array = new int *[Row]; for (int y=0; y |
iii0628
一般會員 發表:50 回覆:46 積分:19 註冊:2005-04-04 發送簡訊給我 |
RichTop你好:還是出現一樣的訊息,我看我還是改用別的寫法好了。因為這問
題已經困擾我很久了,謝謝你的回覆
引言: iii0628 您好: 感覺上您好像要產生一個二維陣列,並分別將每一列交互的填入0與1。 您原先的寫法,會產生出太多的二維陣列。 至於錯誤訊息(您應該是用C 編譯吧?),無法經由程式片段得知,所以您先修改,看看是否錯誤能獲致改善。int **rawdata_array; int p75_startX=53,p75_startY=42,p75Y=420; int p75X=560,Row,Col,active_code=1,non_active_code=0; char choose; Row = p75Y - p75_startY 1; Col = p75X - p75_startX 1; if ( choose == 'n' ) { rawdata_array = new int *[Row]; for (int y=0; y |
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |