不知道為什麼這篇突然在"傳遞二維陣列" 的搜索排top1. 幾年後的我又整理一篇比較詳細的,建議可以直接來這裡看。 還是有不懂的也歡迎到我部落格留言詢問. ... <看更多>
「動態二維陣列function」的推薦目錄:
- 關於動態二維陣列function 在 [問題] 動態配置下二維陣列參數傳遞- 看板C_and_CPP 的評價
- 關於動態二維陣列function 在 副程式如何傳遞二維陣列 - gists · GitHub 的評價
- 關於動態二維陣列function 在 php二維陣列宣告-推薦/討論/評價在PTT、Dcard、IG整理一次看 的評價
- 關於動態二維陣列function 在 php二維陣列宣告-推薦/討論/評價在PTT、Dcard、IG整理一次看 的評價
- 關於動態二維陣列function 在 C/C++ 十三誡 的評價
- 關於動態二維陣列function 在 #分享[筆記]陣列與指標|C++ - 軟體工程師板 | Dcard 的評價
動態二維陣列function 在 php二維陣列宣告-推薦/討論/評價在PTT、Dcard、IG整理一次看 的推薦與評價
各位大大: 就是我宣告了一個二維動態陣列,寫入了一些值想把他傳入PIC ... array 與associative array; 多維陣列; 陣列的內部指標; PHP 陣列函數- . ... <看更多>
動態二維陣列function 在 php二維陣列宣告-推薦/討論/評價在PTT、Dcard、IG整理一次看 的推薦與評價
各位大大: 就是我宣告了一個二維動態陣列,寫入了一些值想把他傳入PIC ... array 與associative array; 多維陣列; 陣列的內部指標; PHP 陣列函數- . ... <看更多>
動態二維陣列function 在 C/C++ 十三誡 的推薦與評價
利用malloc() 函式來動態分配空間,用malloc宣告的陣列會被存在heap。 ... 也因為上述的例子,許多人以為那二維陣列是不是也可以改成int **。 ... <看更多>
動態二維陣列function 在 #分享[筆記]陣列與指標|C++ - 軟體工程師板 | Dcard 的推薦與評價
釋放動態記憶體時,指標變數會不會也被釋放? ... C++知道這是一個12大小,第二維為4的陣列,自然第一維就是3。 int a[2][5]; a[0][5] == a[1][0];? ... <看更多>
動態二維陣列function 在 [問題] 動態配置下二維陣列參數傳遞- 看板C_and_CPP 的推薦與評價
開發平台(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
... <看更多>