請問動態一維宣告 |
尚未結案
|
kmp
一般會員 ![]() ![]() 發表:17 回覆:51 積分:13 註冊:2004-07-24 發送簡訊給我 |
hi~各位大人 : 您們好,I am a very new novice at programming. excuse me, I asked a very simple question about 1 dimension related
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=55770. The code in the following .It would be error in /* with blue */.
//----------------------------------------------------- int* matrix_multip( int *A , int rA , int cA , int *B , int rB , int cB ) { if( cA == rB ) { for( int i=0 ; i < rA ; i ) for( int j=0 ; j < cB ; j ) { AxB[i j*cB]= 0 ; /* I wonder how to declare the initiation of 1 dimension with dynamic size. 我不知怎動態一維宣告,其大小是變動的,依傳進來的參數而定o [C Error] image_lib.cpp(218): E2451 Undefined symbol 'AxB' [C Error] image_lib.cpp(225): E2451 Undefined symbol 'AxB' [C Error] image_lib.cpp(227): E2451 Undefined symbol 'AxB' */ } for( int i=0 ; i < rA ; i ) for( int j=0 ; j < cB ; j ) { for ( int k=1 ; k < cA ; k ) { AxB[i j*cB]= AxB[i j*cB] A[i k*cA]*B[k j*cA] ; } } return AxB ; }// return AxB ; }發表人 - taishyang 於 2004/09/08 11:07:08 |
ENIX007
高階會員 ![]() ![]() ![]() ![]() 發表:28 回覆:274 積分:185 註冊:2003-11-27 發送簡訊給我 |
|
kmp
一般會員 ![]() ![]() 發表:17 回覆:51 積分:13 註冊:2004-07-24 發送簡訊給我 |
hi~ENIX007 :
您好
|
pwipwi
版主 ![]() ![]() ![]() ![]() ![]() 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
|
ENIX007
高階會員 ![]() ![]() ![]() ![]() 發表:28 回覆:274 積分:185 註冊:2003-11-27 發送簡訊給我 |
kmp您好
引言: 動態陣列就是使用指標的方式 int *AxB = new int[100]; ^^^^^^^^^^^size要動態, 老實說,我要作影像處理,傳進來的影像大小不一定, 所以我要動態宣告size這就是動態的方式唷,只要這樣寫: int size = 100; int *AxB = new int[size]; ZeroMemory(AxB,sizeof(int)*size); 或 memset(AxB,0,sizeof(int)*size); size是自己設定的,或是從函式傳進來的,看您自己發揮
------
程式迷人之處,在於邏輯思考,然而卻也是惱人之處~~ |
kmp
一般會員 ![]() ![]() 發表:17 回覆:51 積分:13 註冊:2004-07-24 發送簡訊給我 |
hi~ENIX007 :
您好,
|
pwipwi
版主 ![]() ![]() ![]() ![]() ![]() 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
kmp你好:
對不起,我不小心多刪了一重複的文篇,以下是你那篇文章所提的內容:
目前手上只有一本書有稍稍提到vector,我剛看一網頁不錯,
http://www.jjhou.com/programmer-2-stl.htm 之前我老師規定使用template 也是屬於這類概念o 請教,如上那網頁,我並沒有看到malloc , memory allocation,
定義於stdlib.h , char* malloc(unsigned int size) ,
我覺這用意跟我想要陣列動態宣告大小很像,請問有沒什差別?
配置記憶體的手法有很多,在C語言的時代,用的是malloc系列的function。到了C plusplus,則引入了new和delete的手法,且為了可以和C回朔,malloc還是可以在C plusplus裡使用。不過在C plusplus還是推薦用new與delete。
到了STL加入C plusplus後,直接用new的人愈來愈少,因為有不少用STL的容器就可以做到了,而且做得更有效率。到現在一般推薦,配置小物件用STL的容器來代借,配置大的物件就直接用new。 希望有回答你的問題。
|
ENIX007
高階會員 ![]() ![]() ![]() ![]() 發表:28 回覆:274 積分:185 註冊:2003-11-27 發送簡訊給我 |
kmp您好
引言: for( int i=0 ; i < rA ; i ) for( int j=0 ; j < cB ; j ) { AxB[j i*cB]=0; 請問這裡是不是這 ZeroMemory(AxB,sizeof(int)*size); 或 memset(AxB,0,sizeof(int)*size); 意思?]是的,這2個函式都是做陣列(指定記憶體區段)初始的動作... 程式迷人之處,在於邏輯思考,然而卻也是惱人之處~~
------
程式迷人之處,在於邏輯思考,然而卻也是惱人之處~~ |
kmp
一般會員 ![]() ![]() 發表:17 回覆:51 積分:13 註冊:2004-07-24 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |