다차원 배열을 처리하는이 프로그램을 방금 보았습니다. 나는 그것의 요지를 가지고 있지만, 확실하지 않은 특별한 표기법이있다.배열에 대한 포인터의 표현은 무엇입니까?
2 차원 배열은 2D 행렬의 행 수를 언급 할 필요가 없기 때문에 다차원 배열의 열에 포인터를 전달하는 것이 좋습니다.
int (*pm)[COLUMN]
여기 전체 프로그램 : 그래서, 2 차원 매트릭스의 컬럼에 대한 포인터 오후 전달
#include<stdio.h>
#include<stdlib.h>
const int ROW = 2;
const int COL=3;
void fill_array(int (*pm)[COL], int row);
void display_array(int m[][COL], int row);
int main(int argc, char const *argv[])
{
/* code */
int i,j;
int m[ROW][COL];
//CALL function to enter elements
fill_array(m,ROW);
//display
display_array(m,ROW);
return 0;
}
void fill_array(int (*pm)[COL], int row)
{
int i,j;
printf("Please fill the array's content: \n");
for(i=0;i<row;i++)
{
for(j=0;j<COL;j++)
{
printf("\n m[%d][%d]: ",i,j);
scanf("%d", &pm[i][j]);
}
}
}
void display_array(int m[][COL], int row)
{
int i,j;
printf("\n Array's contents: \n");
for(i=0;i<row;i++)
{
for(j=0;j<COL;j++)
{
printf("%d\t", m[i][j]);
}
printf("\n");
}
}
내가 배열에 대한 포인터의 표현에 대해 확실하지 않다. 포인터가 배열에 추가되는 표기법에 익숙하지 않다는 의미입니다. 누군가가 이것에 약간의 빛을 던질 수 있습니까?
감사합니다.
'void fill_array (int (* pm) [COL], int row);'void fill_array (int pm [] [COL], int row);와 동일합니다. –
http://stackoverflow.com/questions/1052818/create-a-pointer-to-two-dimensional-array http://stackoverflow.com/questions/3904224/declaring-a-pointer-to-multidimensional-array- and-allocating-the-array – Antonio