배열 선언 시 주의할 점
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 |