:경고 : 배열 첨자가 배열 범위를 초과 [-Warray - 경계]
fprintf (fp, "%dd%d+%d ", pMobIndex->mana[DICE_NUMBER],
DICE_NUMBER에 정의되어 내 헤더 파일을 0으로 설정하십시오.
확실히 0은 배열의 크기를 초과하지 않습니다.
배열은로 정의됩니다. 0 배열의 범위 내에서 명확로
int mana[2];
나는 그것이이 일을 왜 전혀 생각이 없다. 내 엔진 코드 절반이 배열에 묶여있는 오류를 던지고 있습니다. 약 30 개가 있습니다. NONE이 나에게 의미가 있습니다.
gcc -O3 -s -Wall -c -o obj/olc_save.o olc_save.c
olc_save.c: In function 'save_mobile':
olc_save.c:234:13: warning: array subscript is above array bounds [-Warray-bounds]
fprintf (fp, "%dd%d+%d ", pMobIndex->mana[DICE_NUMBER],
^
그것은 또한 발생합니다 : 여기
는 메이크업의 출력입니다db1.c: In function 'create_mobile':
db1.c:2056:30: warning: array subscript is above array bounds [-Warray-bounds]
+ pMobIndex->mana[DICE_BONUS];
및
olc_act.c: In function 'medit_manadice':
olc_act.c:6500:15: warning: array subscript is above array bounds [-Warray-bounds]
pMob->mana[DICE_BONUS] = atoi (bonus);
내 헤더 파일의 정의 :
/* dice */
#define DICE_NUMBER 0
#define DICE_TYPE 1
#define DICE_BONUS 2
,
나는 DICE_BONUS가 (지금은 그것을 깨닫고있을 것이다) 알고 있지만, 내 인생에서 DICE_NUMBER가 왜 있는지 알 수 없다.
D 오. 문제는 fprintf
에있는 세 번째 정수 출력이 DICE_BONUS이지만 다른 행에 있기 때문에 컴파일러가 DICE_NUMBER에 대한 경고 메시지를 보냈다고 생각합니다. 보너스에 대한 경고였습니다.
[SSCCE] (http://sscce.org)하시기 바랍니다. – jrok
표시되는 코드로 인해 경고가 발생 했습니까? –
코멘트가 아닌 자신의 질문 plz로 업데이트하십시오. – billz