누군가
31
2021-01-08 12:18:01 작성 2021-01-08 14:09:34 수정됨
3
192

C언어 const int (dev c++)



	const int n = 2;
	const int m = 2;
	const int l = 2;

	int a[n][m]={1,2,3,4};
	int b[m][l]={5,6,7,8};
	int c[n][l]={};

코드에서 이 부분이 에러가 납니다... repl.it 에서 돌려보면 정상적으로 작동하는데 dev c++에서만

[Error] variable-sized object may not be initialized

이런 에러가 뜨네요 const 로 지정하면 상수취급되서 배열크기로 쓸 수 있지 않나요?

0
  • 답변 3

  • 인사동
    2021-01-08 12:36:31

    c 버전이 어떻게 되나요.

    > repl.it 에서 돌려보면 정상적으로 작동하는데 dev c++에서만

    두개의 환경이 다른거겠죠 컴파일 방식도 다를수 있고

    https://stackoverflow.com/questions/34975342/creating-dynamic-array-without-malloc


    위의 기사 보시면 더 도움이 될듯 합니다.

  • 누군가
    31
    2021-01-08 13:38:41
    해결했습니다 아마 이차원 배열을 중괄호로 초기화 한 것이 문제였던거 같네요
  • jason not json
    193
    2021-01-08 15:41:05 작성 2021-01-08 15:41:48 수정됨

    const가 붙어도 컴파일 타임에서 변수이기 때문에  값을 알수없는 변수로 배열의 크기를 설정하고 인라인 초기화는 불가능한것으로 알고 있습니다.

    아시겠지만 인라인 초기화를 원하신다면 전처리기를 쓰셔야 합니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.