프로그래밍언어/C언어[Error]

[C언어][Error] 095. expected expression before ‘]’ token – ] 앞에 표현식 누락

about_IT 2025. 5. 7. 11:56
728x90

이 오류는 배열 인덱스를 사용할 때 대괄호 내부에 유효한 표현식이 없을 경우 발생합니다. 즉, [] 안에 인덱스가 빠졌거나, 인덱스가 올바른 형태의 식(expression)이 아닐 때 컴파일러가 오류를 출력합니다. 대괄호는 배열 접근 연산자로, 항상 안에 정수형 표현식이 들어가야 합니다.


실수로 인덱스를 빠뜨렸거나, 인덱스를 구성하는 변수나 값이 선언되지 않았을 때 자주 발생합니다.



● 오류 예제

#include <stdio.h>

int main() {
    int arr[5] = {1, 2, 3, 4, 5};
    printf("%d\n", arr[]);  // 오류: 인덱스 없음
    return 0;
}

컴파일 시 다음과 같은 오류 메시지를 출력합니다.

error: expected expression before ‘]’ token


● 해결 방법

배열에 접근할 때는 항상 대괄호 안에 정수형 인덱스를 포함해야 합니다. 아래와 같이 수정하면 오류가 해결됩니다.

#include <stdio.h>

int main() {
    int arr[5] = {1, 2, 3, 4, 5};
    printf("%d\n", arr[2]);  // 올바른 인덱스 접근
    return 0;
}

출력 결과:

3


● 실전 팁

  • 배열 인덱스는 반드시 대괄호 안에 표현식으로 작성되어야 합니다.
  • 인덱스가 빠지거나 변수 이름이 잘못되었는지 확인하세요.
  • 배열 접근 시 항상 유효한 정수 인덱스를 넣었는지 점검하세요.

C언어에서 배열은 인덱스를 통해 요소에 접근하므로, 인덱스 표현이 정확하지 않으면 컴파일 오류가 발생합니다. 인덱스는 반드시 유효한 정수 표현식으로 입력해야 한다는 점을 기억하세요.

728x90