2차 배열 동적할당


2차 배열 동적할당은 항상 헷갈린당~
그래서 정리해봤당.ㅎㅎㅎ
후후후후

///////////////////////////////////////////////////////////////////////////////////////////////////////

1. C로 2차원 배열 동적할당

void main()
{
 int  i;
 int  nX = 0 , nY = 0;
 int  **ppArray = NULL;

 printf("X의 값을 입력하세요" , nX);
 scanf("%d" , &nX);
 
 printf("Y의 값을 입력하세요" , nY);
 scanf("%d" , &nY);


 //===============================================
 // 메모리 할당
 //===============================================
 ppArray = (int**)malloc(sizeof(int) * nX);
 for(i = 0 ; i < nX ; i++)
 {
  ppArray[i] = (int*)malloc(sizeof(int)*nY);
 }

 

 
 //===============================================
 // 메모리 해제
 //===============================================
 for(i = 0 ; i < nX ; i++)
 {
  free(ppArray[i]);
 }
 free(ppArray);
}





2. C++로 2차원 배열 동적할당

#include <iostream>

using std::cout;
using std::cin;
using std::endl;

void main()
{
 int  nX = 0 , nY = 0;
 int** ppArray = NULL;

 cout << "X의 값을 넣어주세요" << endl;
 cin >> nX;

 cout << "Y의 값을 넣어주세요" << endl;
 cin >> nY;

 
 //============================================
 // 메모리 공간 할당
 //============================================
 ppArray = new int*[nX];

 if(ppArray)
 {
  for(int i = 0 ; i < nX ; i++)
  {
   ppArray[i] = new int[nY];
  }
 }
 
 //============================================
 // 메모리 공간 지우기
 //============================================
 if(ppArray)
 {
  for(int i = 0 ; i < nX ; i++)
  {
   delete[] ppArray[i];
   ppArray[i] = NULL;
  }
  delete[] ppArray;
 }
}

이 글을 공유하기

댓글

Designed by JB FACTORY