[問題] 動態配置下二維陣列參數傳遞
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
None
問題(Question):
想嘗試練習指標與陣列的相關使用
compile時就宣告好大小的二維陣列依照置底方式傳遞應該沒問題
在動態配置的陣列傳遞時,想要採用轉成一維陣列卻無法得到正確結果
餵入的資料(Input):
row=5
column=5
預期的正確結果(Expected Output):
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
錯誤結果(Wrong Output):
5*5的完全不是1的數字
程式碼(Code):(請善用置底文網頁, 記得排版)
#include<stdio.h>
int c_array(int *a,int row,int column,int i,int j)
{
printf("%d ",*( a + i*column +j ) );//使用pointer來控制矩陣
}
int main(void)
{
int **ptr=NULL;
int row,column;
int i,j;
while(1)
{
printf("row=\n");
scanf("%d",&row);
printf("column=\n");
scanf("%d",&column);
if(row==0 && column==0) break;
ptr=(int**)malloc(sizeof(int*)*row);
//生成一維指標陣列
for(i=0;i<row;i++)
{
ptr[i]=(int*)malloc(sizeof(int)*column);
}//二維
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
ptr[i][j]=1;
}
}//將矩陣付值:1
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
//printf("%d",ptr[i][j]);//測試用
c_array((int*)ptr,row,column,i,j);//使用另外函數來print
}
printf("\n");//換行
}
for(i=0;i<row;i++) free(ptr[i]);
free(ptr);//釋放記憶體
}
return 0;
}
補充說明(Supplement):
無
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.182.246
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1422963297.A.B4F.html
→
02/03 19:40, , 1F
02/03 19:40, 1F
→
02/03 19:52, , 2F
02/03 19:52, 2F
→
02/03 19:53, , 3F
02/03 19:53, 3F
→
02/03 19:57, , 4F
02/03 19:57, 4F
→
02/03 20:04, , 5F
02/03 20:04, 5F
→
02/03 20:08, , 6F
02/03 20:08, 6F
→
02/03 20:12, , 7F
02/03 20:12, 7F
→
02/03 20:14, , 8F
02/03 20:14, 8F
→
02/03 20:16, , 9F
02/03 20:16, 9F
→
02/03 20:17, , 10F
02/03 20:17, 10F
→
02/03 20:18, , 11F
02/03 20:18, 11F
→
02/03 20:19, , 12F
02/03 20:19, 12F
→
02/03 20:20, , 13F
02/03 20:20, 13F
→
02/03 20:21, , 14F
02/03 20:21, 14F
→
02/03 20:21, , 15F
02/03 20:21, 15F
推
02/03 20:26, , 16F
02/03 20:26, 16F
→
02/03 20:26, , 17F
02/03 20:26, 17F
→
02/03 20:27, , 18F
02/03 20:27, 18F
→
02/03 20:28, , 19F
02/03 20:28, 19F
→
02/03 20:29, , 20F
02/03 20:29, 20F
→
02/03 20:30, , 21F
02/03 20:30, 21F
→
02/03 20:30, , 22F
02/03 20:30, 22F
→
02/03 20:32, , 23F
02/03 20:32, 23F
→
02/03 20:33, , 24F
02/03 20:33, 24F
→
02/03 20:34, , 25F
02/03 20:34, 25F
→
02/03 20:35, , 26F
02/03 20:35, 26F
→
02/03 20:35, , 27F
02/03 20:35, 27F
→
02/03 20:38, , 28F
02/03 20:38, 28F
→
02/03 20:39, , 29F
02/03 20:39, 29F
→
02/03 20:39, , 30F
02/03 20:39, 30F
→
02/03 20:39, , 31F
02/03 20:39, 31F
→
02/03 20:57, , 32F
02/03 20:57, 32F
→
02/03 20:58, , 33F
02/03 20:58, 33F
→
02/03 21:00, , 34F
02/03 21:00, 34F
→
02/03 21:00, , 35F
02/03 21:00, 35F
→
02/03 21:07, , 36F
02/03 21:07, 36F
→
02/03 21:10, , 37F
02/03 21:10, 37F
→
02/03 21:11, , 38F
02/03 21:11, 38F
→
02/03 21:12, , 39F
02/03 21:12, 39F
→
02/03 21:13, , 40F
02/03 21:13, 40F
→
02/03 21:14, , 41F
02/03 21:14, 41F
→
02/03 21:17, , 42F
02/03 21:17, 42F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章