void main() { int index; cout << "학생 수를 입력해 주세요 : "; cin >> index; int *st = new int[index]; if(st == NULL) { cout << "동적할당 오류" << endl; return; } for(int i = 0; i < index; i++) st[i] = i + 1; cout << "학생들의 번호가 지정되었습니다." << endl; for(i = 0; i < index; i++) cout << st[i] << "\t"; delete []st; }
프로그램 실행화면
C언어에서 동적 할당을 하기 위해서는 malloc()이라는 함수를 써야 한다. C++은 지극히 내 개인적인 생각이지만 더 편하게 동적할당을 할 수 있는 것 같다.
그저 new만 써주면 되기 때문이다. 그리고 해당 함수의 마지막에 delete를 해주면 된다. 동적할당을 써야하는 경우는 그렇게 많지는 않지만 가끔씩 필요하다.
그리고 동적할당을 이상하게 하면 꼭 런타일 오류를 발생해 프로그램이 종료된다. 그리고 C++에서는 변수를 어디서나 선언할 수 있다. 그래서 for문의 초기값에서 int i = 0;을 해줄 수 있는 것이다.
원래 for문에서 빠져나오면 int i는 소멸해야 한다. 지금 사용하고 있는 비쥬얼 스튜디오 6.0이 옛날 것이라 그런지 오류를 발생했다.
선언한 변수를 다시 선언했다는 오류인데 그냥 및에 있는 for문에서는 int i를 다시 선언해 주지 않는 것으로 해결했다.
변수를 원하는 곳에서 선언할 수 있다는 것은 장점이긴 하지만 한 함수안에서 같은 이름의 변수가 선언되면 헷갈릴 여지가 있다. 그래서 C스타일대로 제일 위에 다 선언해 두는 것을 좋아한다.