다른 크기의 배열 선언과 관련된 퀴즈를 우연히 발견했습니다. 가장 먼저 떠 올린 것은 다음과 같이 new
명령에 동적 할당을 사용해야한다는 것입니다 .
while(T--) {
int N;
cin >> N;
int *array = new int[N];
// Do something with 'array'
delete[] array;
}
그러나 솔루션 중 하나가 다음과 같은 경우를 허용한다는 것을 알았습니다.
while(T--) {
int N;
cin >> N;
int array[N];
// Do something with 'array'
}
약간의 연구를 한 후에 g ++이 이것을 허용한다는 것을 읽었지만 계속 생각하면 동적 할당을 사용해야합니까? 아니면 컴파일러가 이것을 동적 할당으로 변환합니까?
삭제 기능이 포함되어 있습니다. 그러나 여기서 질문은 메모리 누수에 관한 것이 아닙니다.
new OBJ
직접 호출 하여 객체를 할당하는 것이 일반적 입니다.
std::vector
대신 (std::vector<int> array(N);
)을 사용하십시오.