140
2020-05-24 20:44:38 작성 2020-05-24 20:45:18 수정됨
3
190

C언어 도와주세요



int ra = 0, ca = 0;

scanf("%d %d", &ra, &ca);

int a[ra][ca];

이렇게 []안에다가 scanf로 받은 값을 집어넣고 싶은데 상수를 쓰라고 하면서 오류가 발생하는데 방법 없을 까요?? 저번에 이런 형식으로 했을 때는 잘됐는데 이번에 하려니까 오류가 뜨네요...

0
0
  • 답변 3

  • 사과맛오렌지
    256
    2020-05-24 21:13:46

    배열의 값은 변수를 쓸 수 없는 것으로 알고 있습니다.

    동적 할당을 쓰셔야 할 듯 합니다.

    0
  • Deck
    2
    2020-05-24 21:18:12 작성 2020-05-24 21:19:49 수정됨

    윗 분 말씀이 맞습니다. c에는 배열 선언시 인덱스에 정수 값만 올 수 있고, 변수는 오지 못합니다.

    int ra = 0, ca=0;

    int **a;

    int i;

    scanf("%d %d", &ra, &ca);

    a=(int **)malloc(sizeof(int *) *ra);

    for(i=0;i<ra;i++) 

    {

        a[i]=(int *)malloc(sizeof(int)*ca);

    }

    이런식으로 동적할당 해주셔야합니다.

    0
  • 140
    2020-05-24 21:35:48

    갑사합니다!

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