2차원배열 동적할당
#include <stdio.h>
#include <stdlib.h>
#pragma warning(disable:4996);
main()
{
// 동적할당으로 2차원 배열 만들기
int **p;
int i,j;
p = (int **)malloc(3*sizeof(int*)); // 3행으로 이루어진 배열포인터를 가르키는 더블포인터
for(i=0 ; i<3 ; i++)
p[i] = (int *)malloc(4*sizeof(int)); //각 행에 4열짜리 배열을 동적할당
for(i=0 ; i<3 ; i++)
{
for(j=0 ; j<4 ; j++)
p[i][j] = i+j;
}
for(i=0 ; i<3 ; i++)
{
for(j=0 ; j<4 ; j++)
printf("%5d\t",p[i][j]);
puts("\n");
}
free(p);
}
#include <stdio.h>
#include <stdlib.h>
#pragma warning(disable:4996);
main()
{
int **p;
int i,j;
int row,col;
printf("행:");
scanf("%d",&row);
printf("열:");
scanf("%d",&col);
p = (int **)malloc(row*sizeof(int*));
for(i=0 ; i<row ; i++)
p[i] = (int *)malloc(col*sizeof(int));
for(i=0 ; i<row ; i++)
{
for(j=0 ; j<col ; j++)
p[i][j] = i+j;
}
for(i=0 ; i<row ; i++)
{
for(j=0 ; j<col ; j++)
printf("%5d\t",p[i][j]);
puts("\n");
}
free(p);
}
#include <stdio.h>
#include <stdlib.h>
#pragma warning(disable:4996);
int ** malloc2(int r, int c)
{
int **p;
int i;
p = (int **)malloc(r*sizeof(int*));
for(i=0 ; i<r ; i++)
p[i] = (int *)malloc(c*sizeof(int));
return p;
}
main()
{
int **p;
int i,j;
int row,col;
printf("행:");
scanf("%d",&row);
printf("열:");
scanf("%d",&col);
p = malloc2(row,col);
for(i=0 ; i<row ; i++)
{
for(j=0 ; j<col ; j++)
p[i][j] = i+j;
}
for(i=0 ; i<row ; i++)
{
for(j=0 ; j<col ; j++)
printf("%5d\t",p[i][j]);
puts("\n");
}
free(p);
}