배열 선언 시 주의할 점

CODEDRAGON Development/C, C++

반응형

 

 

    

배열 선언 시 주의할 점

  • 배열 요소는 0부터 시작합니다.
  • 배열 초기화를 중괄호로 할 때 배열의 선언과 초기화가 개별적으로 이루어져서는 안 됩니다.
  • 배열의 길이는 상수로 설정해야 합니다.

 


 

 

배열 요소는 0부터 시작합니다.

#include <stdio.h>
int main(void)
{
int array[2]; // 배열 길이는 2
array[0]=1; // 배열 요소는 0부터 시작
array[1]=2;
array[2]=3; // 에러 발생
return 0;
}

 

 

   

배열 초기화를 중괄호로 할 때 배열의 선언과 초기화가 개별적으로 이루어져서는 안 됩니다.

#include <stdio.h>
int main(void)
{
int array1[3]={10, 20, 30}; // 정상적인 초기화 방법
int array2[3];
array2={10, 20, 30}; // 에러 발생
return 0;
}

   

 

   

배열 길이를 변수로 설정하면 안 됩니다. (배열의 길이는 상수로 설정)

#include <stdio.h>
#define MAX 10 // 심볼릭 상수 선언
int main(void)
{
   int n=3;
   const int SIZE=20;    // 심볼릭 상수 선언
   int array1[MAX]={85,99,76}; // 정상: 배열 길이를 심볼릭 상수로 설정
   int array2[SIZE]={85,99,76}; // 정상: 배열 길이를 심볼릭 상수로 설정
   int array3[n]={85,99,76};  // 에러: 배열 길이를 변수로 설정
   int array3[3]={85,99,76};   //정상:배열 길이를 리터럴 상수로 설정
return 0;


}

 

ERROR-variable-sized object may not be initialized

 

 

 

'Development > C, C++' 카테고리의 다른 글

Ex01-1차원 배열  (0) 2015.07.15
1차원 배열의 주소와 값의 참조  (0) 2015.07.14
* 연산자, *&연산자 - 메모리 구조(총정리)  (0) 2015.07.14
Ex17-팩토리얼 출력 (Factorial)  (0) 2015.07.14
LAB03-윤년 계산기  (0) 2015.07.13