편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2022.05.27

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


    #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  
    
  • 프로필 이민재님의 편집
    날짜2022.05.27

    오류 질문


    include

    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