6교시
// 동적메모리할당
// 1. 왜동적메모리할당을사용하는가?
// 주로실행시간결정된값으로메모리를할당하기위해.
//--------------------------------------------------------------
// 배열의크기에대해서
void foo( const int c )
{
int ar[c]; // error. 실행해봐야알수있다.(컴파일시간에결정!!)
}
int main()
{
const int x = 10;
int ar[x]; // ok.
const int sz[3] = { 1, 2, 3 };
int br[ sz[1] ];
// error. 배열의크기는상수가아니라
// 컴파일시간에크기를알아야하는것이다.
// sz[1] => *(sz+1)
}
//--------------------------------------------------------------
void main()
{
//C++
int* p1 = new int;
int* p2 = new int[10];
delete p1;
delete[] p2;
int* p3 = new int(3); // 3으로초기화
// 2차원배열의주소는1차원배열포인터로가르키면된다.
int(*p4)[10] = new int[10][10]; // 2차원배열형태로.
int* p6 = new int;
free(p6); // undefined
int* p7 = new int[10];
delete p7; // undefined
int n;
cout << "학생수를넣어주세요. >>";
cin >> n;
// 학생수만큼의메모리를할당하고싶다.
//int jumsu[n];
// 배열의크기는변수가될수없다. 상수이어야한다.
int* jumsu = (int*)malloc( sizeof(int)*n );
}