1樓:匿名使用者
public double culcofv(int ysize,int nsize)
2樓:匿名使用者
用new申請空間;
再在對每個數進行初始化;
//動態定義和初始化二維陣列 部分**
cout<<"輸入二維陣列的行,列 :";
cin>>row >>col ;
int **p2 ;
p2 = new int*[row] ;
for( i = 0 ; i < row ; i ++ )p2[i] = new int[col] ;
//輸入二維陣列的值
for( i = 0 ; i < row ; i ++ )for( j = 0 ; j < col ; j ++ )p2[i][j] = rand() % 10 ;
//輸出二維陣列
cout<<"輸出二位陣列:"< for( i = 0 ; i < row ; i ++ )//釋放二維陣列 for( i = 0 ; i < row ; i ++ )delete p2[i] ; delete p2 ; c++怎麼定義一個動態二維陣列 3樓:天方夜譚的哆啦a夢 #include #include #include #definerank10 #definecolumn7 intmain() inti,j; int(*p)[column]; //動態生成二維陣列,指定列數為column,如果想改,可以進行修改 //的引數,如果想定義n行2列就為:p=(int(*)[2])malloc(n*2*sizeof(int)); p=(int(*)[column])malloc(rank*column*sizeof(int));//動態申請n行column列的二維陣列 for(i=0;ifor(j=0;jp[i][j]=i*j; for(i=0;ifor(j=0;jprintf("%d,",p[i][j]); printf("\n"); free(p); system("pause"); return0; 擴充套件資料 定義一個三維陣列: intx[3][4][5]; 定義了一個三維陣列,陣列的名字是x,陣列的長度為3,每個陣列的元素又是一個二維陣列,這個二維陣列的長度是4。 並且這個二維陣列中的每個元素又是一個一維陣列,這個一維陣列的長度是5,元素型別是int。多維陣列在實際的工作中使用不多,並且使用方法與二維陣列相似。 4樓:go陌小潔 用new申請空間; 再在對每個數進行初始化; //動態定義和初始化二維陣列 部分** cout<<"輸入二維陣列的行,列 :"; cin>>row >>col ; int **p2 ; p2 = new int*[row] ; for( i = 0 ; i < row ; i ++ )p2[i] = new int[col] ; //輸入二維陣列的值 for( i = 0 ; i < row ; i ++ )for( j = 0 ; j < col ; j ++ )p2[i][j] = rand() % 10 ; //輸出二維陣列 cout<<"輸出二位陣列:"< for( i = 0 ; i < row ; i ++ )//釋放二維陣列 for( i = 0 ; i < row ; i ++ )delete p2[i] ; delete p2 ; 5樓:匿名使用者 #include typedef vector> matrix; 這樣matrix就是二維陣列了,可以用push_back()動態往裡面新增元素 ,不用預先定義陣列大小 6樓: int row, col; cin >> row >> col; int** ptr = new int* [row]; for(int i=0; i for(int j=0; j 7樓:倒黴熊 int x,y,**p; cin>>x>>y; p=new int*[x]; for(int i=0;i p[i]=new int[x]; 8樓:不宜然 int **parray; parray = new int8[5]; for (int i=0 i<5; ++i)for (int i=0; i<5; ++i)delete parray; c語言中如何定義動態二維陣列並輸出 9樓:會飛的小兔子 intmain() //釋放記憶體 for(i=0;ifree(p[i]); free(p); return0; }擴充套件資料c語言中通過函式傳遞二維陣列 #include void func(int n, int a[size])void main() 10樓:達豐 實現先輸入二維陣列的行數m和列數n,並再輸入m*n個整型資料存到動態二維陣列中。最後輸出所有二維陣列的元素值。**如下: int main() //釋放記憶體 for(i = 0; i < m; i ++)free(p[i]); free(p); return 0;} 11樓:_葉子妞妞 可以按照下面步驟進行定義二維陣列並輸出: 1 定義二維指標。 2 確定陣列維數,即行數和列數。 3 申請行數個一維指標大小空間,並賦值給二維指標。 4 對於每個一維指,申請列數個元素的空間,並賦值給對應的一維指標。 5 輸入或賦值資料。 6 使用雙重迴圈,逐個範圍儲存單元並輸出。 7 逐個釋放一維指標上的記憶體。 8 釋放二維指標上的記憶體。 以整型二維陣列為例: 下面的**,實現先輸入二維陣列的行數m和列數n,並再輸入m*n個整型資料存到動態二維陣列中。最後輸出所有二維陣列的元素值。 #include //包含輸入輸出函式 #include //包含動態記憶體分配函式。 int main() //釋放記憶體 for(i = 0; i < m; i ++)free(p[i]); free(p); return 0;} 12樓:匿名使用者 多維陣列一維 化... #include #include int main() }for(i=0;i printf("\n");}} 13樓:匿名使用者 先定列空行 a[2] c語言如何動態分配二維陣列?? 14樓: 一、二維資料的記憶體空間動態分配 方法一: 首先arr是一個二級指標,為arr分配xdim空間,每一維都是一個指向陣列的指標,且每個陣列內部的地址空間是連續的,但是陣列之間的地址空間沒有連續性。 這種分配方法在記憶體中的佈局如下: 方法二: 這種方法相當於動態分配了一個一維的連續的空間,然後讓相應的陣列指標指向某些固定的位置達到呼叫的目的。 這種分配方法在記憶體中的佈局如下: 二、二維資料的記憶體空間釋放 對於第一種分配方式需要一個一個釋放,對第二種方式只要分配兩個指標即可。 三、完整** 15樓:匿名使用者 使用malloc函式,先分配第一維的大小,然後再迴圈分配每一維的大小。 示例**,分配3行4列二維陣列: #include #include int main() //初始化 for (i = 0; i < 3; ++i)}//輸出測試 for (i = 0; i < 3; ++i)printf ("\n"); }//釋放動態開闢的空間 for (i = 0; i < 3; ++i)free(a); return 0;}/* 輸出:0 1 2 3 1 2 3 4 2 3 4 5*/ 16樓: 假設你要定義3行4列的陣列 int **a; n=3,m=4; a=(int**)malloc(n*sizeof(int*)); for(j=0;j a[j]=(int*)malloc(m*sizeof(int*)); 釋放的時候也要先釋放列後釋放行 for(j=0;j free(a[j]); free(a); a=null;最後給他賦個零。 ok分給我吧 17樓:匿名使用者 如果p是這樣char **p;定義的。 那好像*p=(char **)malloc(1000*sizeof(char *));要改成p=(char **)malloc(1000*sizeof(char *)); c++中怎麼用new函式定義一個二維陣列? 18樓:問明 假設a,b為兩個int型變數,如果希望這樣生成一個二維陣列:new int[a],是不會得到編譯器允許的——因為沒有指定這個陣列的元素型別。 由於b的大小未知,編譯器無法確定『int』到底是一個什麼型別。所以,要用new建立一個二維陣列。 方法一:使用常量 接上:如果將b指定為一個常量,例如new int[a][5],其實質與new int[a]建立一個動態陣列並無多大區別——只是元素型別由int變為了'int[5]'而已。 示例**: void testfunc_(unsigned int n) unsigned int i,j; //元素型別為『int[5]』的陣列,可賦值給『int[5]』型別的指標. int(*array2d)[5]=new int[n][5]; for(i=0;ifor(j=0;j<5;++j) array2d[j]=i*5+j; //**方法和普通動態陣列相同,使用'delete'即可 deletearray2d; 用這個方法來建立二維陣列,比較直觀、易用,但它最大的限制在於:你必須在編譯時確定b的大小。 方法二:使用指標間接引用 首先建立若干個大小一致的動態陣列,然後將這些陣列的首地址(轉化為指標)按順序儲存到一個動態陣列中,就相當於模擬了一個二維動態陣列。 示例**: void testfunc_pointer(unsigned int height,unsigned int width) unsigned int i,j; //陣列的元素型別為『int*』,可賦值給指向『int*』的指標. int**array2d=new int*[height]; for(i=0;iarray2d=new int[width]; //訪問. for(i=0;ifor(j=0;j//記憶體非連續,注意防止越界. array2d[j]=i*width+j; //首先**低一級的動態陣列. for(i=0;ideletearray2d; //然後**高一級的動態陣列. deletearray2d; 方法三:使用vector 藉助stl中的vector,我們可以很直觀的建立一個二維陣列,而不需要用到基本陣列的概念。 示例**: void testfunc_vector(unsigned int height,unsigned int width) typedef std::vectorintvector; typedef std::vectorintvector2d; unsigned int i,j; intvector2d*parray2d=new intvector2d; //動態設定大小. parray2d->resize(height); for(i=0;i(*parray2d).resize(width); for(i=0;ifor(j=0;j(*parray2d)[j]=i*width+j; delete parray2d; c語言中long佔4個位元組,所以longa 3 5 佔4 3 5 60個位元組 從元素角度理解a代表a 0 0 從二維陣列理解a代表a二維陣列名,即二維陣列首地址 從一維陣列角度理解a代表a 0 即二維陣列第一行看作一個一維陣列,a 0 為這個一維陣列的首地址 a 1 從二維陣列看代表a 1 0 ... 如果要獲取記憶體地址,你上面那種函式獲取方法是錯誤的.函式中int a僅僅是主函式變數ff的一個副本,ff當初沒有具體指明地址,傳遞給a也是不確定地址,a分配完畢,只是修改a自身指向,並不修改ff指向.所以用下面方法進行修改,採用返回地址方法 include 包含標頭檔案 include int a... data array 216 array a 1,b 3456,c 廣州天河 d 98765 217 array a 1,b 3456,c 廣州天河 d 98765 218 array a 1,b 3456,c 廣州天河 d 98765 219 array a 1,b 3456,c 廣州天河 d 9...在C語言中定義二維陣列long a,則陣列佔多少位元組的儲存空間
c語言中定義動態一維陣列的函式,然後在主函式中使用
thinkphp二維陣列怎麼插入資料庫