Written on
·
229
1
저는 그동안
int n;
scanf("%d", &n);
int arr[n];
이런식으로 배열의 크기를 동적할당해서 사용했는데, c언어에서는 이렇게 사용하면 안되는 거였나요?
사용해보니까 되길래 이렇게 계속 썼는데...
Answer 1
1
우림님 코드처럼 동적할당을 하면 컴파일러에 따라 런타임에러를 내기도 합니다. int *arr=new int[n] 로 new 연산자를 써서 동적으로 할당받아 하면 좋을 것 같습니다. 동적할당 해제는 delete[] arr; 하면 할당이 해제됩니다. 아니면 vector 컨테이너를 쓰셔도 되구요. 요즘은 배열을 쓰지 않고 벡터를 쓰는 경향이 있습니다.