#include <cs50.h> #include <stdio.h> int example[]; int main(void) { int example = {1,2,3}; for (int i = 0; i < 3; i++) { printf("%i \n", example[i]); } }
“2”에 “Excess elemnts in scalar initializer”라는 오류 메시지가 표시되는 이유 내가 정의하고있는 배열에서, 배열의 I 번째 정수를 출력하려고 할 때 “[i]”에 “Subcripted 값이 배열, 점 또는 벡터가 아닙니다”라는 오류 메시지가 나타납니다.
감사합니다.
댓글
답변
배열의 크기를 설정해야합니다.
IE :
int example[10];
그런 다음 이렇게 설정하여 배열의 첫 번째 요소를 1 :
example[0] = 1;
하지만 이렇게 할 수는 없습니다.
int example[10]; example = {1, 2, 3};
이미 배열을 정의한 경우 컴파일러는 정의 (또는 변경)하려는 배열의 요소 (IE : [0])를 정의하고 해당 요소에 할당 할 항목 ( IE : 1).
크기를 자동으로 설정하려면 다음을 삭제할 수 있습니다.
int example[];
다음을 작성합니다.
int example[] = {1, 2, 3};
그러면 컴파일러는 사용자가 배열을 정의하고 3 요소의 값을 1, 2 및 3으로 설정하고 있음을 알고 있습니다.
코드는 다음과 같이 표시됩니다.
#include <cs50.h> #include <stdio.h> int main(void) { int example[] = {1,2,3}; for (int i = 0; i < sizeof(example) / 4; i++) { printf("%d\n", example[i]); } }
도움이되기를 바랍니다. 🙂
답변
수행함으로써
int example[];
크기가 정의되지 않은 배열에 대한 포인터를 초기화하고 있습니다. 그 후
int example = {1,2,3};
yu는 비논리적이며 의미가없는 포인터에 값을 추가하고 있습니다.
int example[3]; int example = {1,2,3};
도움이되기를 바랍니다.
example
를 정의 했습니까?example
에 몇 개의 요소를 푸시하려고합니까?