728x90
반응형
개요
C++은 java와 다르게 가비지 컬렉터가 없어서 직접 할당한 배열을 삭제해줘야한다.
학교 수업 이후로 안써먹은 C++을 코딩테스트 때문에 공부하게되었다..포인터 쥐약인데
오늘의 주제
C++의 동적 배열을 할당하고 삭제해보자
진행 과정
1. 동적 배열의 선언
코드
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class solution {
public:
solution();
};
solution::solution() {
int n;
cin >> n;
int* num;
num = new int[n];
for (int i = 0; i < n; i++) {
cin >> num[i];
}
for (int i = 0; i < n; i++) {
cout << num[i];
}
delete[] num;
}
int main() {
solution s;
}
먼저 전체 코드다. 너무 오랜만에 꺼낸 C++이라 문법이 긴가민가한데..
아무튼 간단하게 배열 크기와 안에 들어갈 수를 입력받고, 출력해주는 코드다.
int n;
cin >> n;
int* num;
num = new int[n];
for (int i = 0; i < n; i++) {
cin >> num[i];
}
solution 기본 생성자 안에서 진행된다.
num 이라는 배열을 생성해주고, new int[]를 사용해서 동적배열을 만들어준 뒤에, n의 수만큼 삽입해준다.
for (int i = 0; i < n; i++) {
cout << num[i];
}
delete[] num;
그리고 출력해주고 마지막엔 delete[] 를 써줘서 지워준다.
여기서 흔히 하는 실수가 delete[]가 아닌 delete를 사용하는건데, 이러면 메모리 누수 문제를 해결할 수 없다.
결과
간단하지만 기본중의 기본 문법이라 메모해둔다.
728x90
반응형