• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

배열 동적할당 질문

19.04.23 15:12 작성 조회수 145

1

저는 그동안 

int n;

scanf("%d", &n);

int arr[n]; 

이런식으로 배열의 크기를 동적할당해서 사용했는데,  c언어에서는 이렇게 사용하면 안되는 거였나요? 

사용해보니까 되길래 이렇게 계속 썼는데...

 

답변 1

답변을 작성해보세요.

1

우림님 코드처럼  동적할당을 하면 컴파일러에 따라 런타임에러를 내기도 합니다.     int *arr=new int[n]  로 new 연산자를 써서 동적으로 할당받아 하면 좋을 것 같습니다.  동적할당 해제는 delete[] arr; 하면 할당이 해제됩니다. 아니면 vector 컨테이너를 쓰셔도 되구요. 요즘은 배열을 쓰지 않고 벡터를 쓰는 경향이 있습니다.