C언어 C6201 스택에 할당되었을 가능성이 있는 버퍼 'grade'에 대해 인덱스 '5'이(가) 유효한 인덱스 범위 '0' - '4'을(를) 벗어납니다.

조회수 619회
#include <stdio.h>
#define size 5

int main(void)
{
    int grade[size]; {};
     grade[size] = 0;

    int i, min, max, sel; {
        for (i = 0; i < size; i++)
        {
            printf("성적을 입력하시오:");
            scanf_s("%d", &grade[i]);
        }
        printf("메뉴를 선택하세요 : 1. 최소값 2.최대값\n");
        scanf_s("%d", &sel);

        min = grade[0];
        max = grade[0];

        for (i = 1; i < size; i++)
        {
            if (sel == 1)
            {
                if (min > grade[i])
                    min = grade[i];
            }
            else
            {
                if (max < grade[i])
                    max = grade[i];
            }
        }
        if (sel == 1)
            printf("최소값은 %d입니다.\n", grade[i]);
        else
            printf("최대값은 %d입니다.\n", grade[i]);
        return 0;
    }
}

이미지

이미지

오류가 나오는데 어떻게 처리 해야 될지 모르겠어요

심각도   코드  설명  프로젝트    파일  줄 비표시 오류(Suppression) 상태
경고  C6386   'grade'에 쓰는 동안 버퍼 오버런이 발생했습니다.    
Project19   C:\Users\이민재\source\repos\Project19\Project19\소스.c    16  

심각도   코드  설명  프로젝트    파일  줄 비표시 오류(Suppression) 상태
오류  C4789   버퍼 'grade'(크기: 20바이트)이(가) 오버런됩니다. 4바이트가 오프셋 20부터 쓰입니다.  
Project19   C:\Users\이민재\source\repos\Project19\Project19\소스.c    16  

심각도   코드  설명  프로젝트    파일  줄 비표시 오류(Suppression) 상태
경고  C6201   스택에 할당되었을 가능성이 있는 버퍼 'grade'에 대해 인덱스 '5'이(가) 유효한 인덱스 범위 '0' - '4'을(를) 벗어납니다.  
Project19   C:\Users\이민재\source\repos\Project19\Project19\소스.c    16  

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기
        int grade[size]; {};
         grade[size] = 0;
    

    위의 두 줄을 아래처럼 바꾸세요.

    int grade[size];
    
    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 이렇게 하면 쓰레기 값이 나와서 이민재 2022.5.29 13:52
    • 일단 에러는 해결된 거구요. 출력이 이상한 이유는 printf("최소값은 %d입니다.\n", grade[i]);에서 grade[i]가 아니고 min을 출력해야 합니다.printf("최소값은 %d입니다.\n", min); 처럼요. 그 아래의 최대값의 경우는 grade[i]대신 max로 교체해야 합니다. 알 수 없는 사용자 2022.5.29 18:38
    • 감사합니다 해결 되었습니다!!!!4 이민재 2022.5.29 22:13

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)