A sentimental robot

2차원배열 동적할당 본문

C

2차원배열 동적할당

GOD03219 2018. 1. 2. 14:38

#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);

 

 

}

'C ' 카테고리의 다른 글

strdup함수 만들기  (0) 2018.01.03
strlen함수 만들기  (0) 2018.01.02
다차원포인터 활용  (0) 2018.01.02
Call by address  (0) 2018.01.02
문자열 비교함수  (0) 2018.01.02