2차 배열 동적할당
- 프로그래밍/C++
- 2011. 1. 27. 23:00
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;
}
}
이 글을 공유하기