코드
2018.06.05 19:56

매우 특이한 버그

조회 수 729 추천 수 1 댓글 9
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
라이선스 GPL v2

#include<stdio.h>
 
int main()
{
    int i,j;
    int a[10][11];
 
    for(i=0;i<10;i++)
        for(j=0;j<11;j++)
            scanf("%d",&a[i][j]);
 
    for(i=0;i<10;i++)
    {
        int safe = 0;
 
        printf("a[10][%d] = %d\n",i,a[i][-3]);   /// 여기
 
        if(a[i][10] == 1)
        {
            safe = 1;
            printf("%d exist \n",i+1);
 
            for(j=10;j>=0;j++)
            {
                if(a[i][j] != 0)
                {
                    printf("%d died\n",i+1);
                    if(a[i][j] > 0)
                        printf("%d crash\n",i+1);
                    if(a[i][j] < 0)
                        printf("%d fall\n",i+1);
                    safe = 0;
                    break;
                }
            }
        }
 
 
        if(safe == 0)
            continue;
        printf("%d safe\n",i+1);
    }
}


http://codeup.kr/JudgeOnline/problem.php?id=1509 

코드업 - 진격 후 결과


코드업 - 진격 후 결과


이 프로그램을 만들고 있었는데 버그가 나서 위 주석 달아늫은 printf 문에서 시험을 하고 있었는데 놀랍게도 대각선으로 출력이 되는듯이 출력이 되었습니다. 그래서 지우고 다시썻는데 말끔히 사라지더군요. 왜 그랬을까요?(참고로 codeblocks 씁니다) 

TAG •
  • profile
    네모 2018.06.06 17:00

    C에서 배열인덱스를 음수값으로 해서 접근이 가능했었나요...?
     
    a[i][-3]

  • ?
    title: 대한민국 국기gimmepoint 2018.06.06 18:00
  • ?
    포인트 폭탄+ 2018.06.06 18:00
    gimmepoint님 축하합니다.
    추가로 200포인트만큼 포인트 폭탄+를 받았습니다.
  • ?
    title: 대한민국 국기gimmepoint 2018.06.06 18:00
    버그인가?
  • profile
    네모 2018.06.06 18:05
    그러네요. 확인해보니 초기화가 되어 있으면 접근 가능하다고 되어 있군요....
    오류의 원인이라고 하면 [-3]이 초기화 되어 있지 않은것 때문이 아닐까 싶습니다.
  • profile
    title: 황금 서버 (30일)humit 2018.06.07 18:00
    컴파일러마다 동작이 달라지겠네요.
    컴파일러에서 배열을 연속으로 배정하지 않을 수도 있으니까요.
  • ?
    title: 대한민국 국기gimmepoint 2018.06.07 18:02
    그런가요?
  • profile
    title: 황금 서버 (30일)humit 2018.06.07 18:27
    아 배열은 연속적으로 할당할 수밖에 없겠네요. 다만 변수 사이의 패딩(?)이 어떻게 할당 되느냐와 쓰래기 값이 어떻게 되어 있느냐에 따라 달라지겠네요
  • ?
    title: 대한민국 국기gimmepoint 2018.06.07 18:32
    그렇군요

  1. 사이트 서버 이전 (또는 미러링 사이트 구축) 쉽게하는 스크립트

    Date2018.01.14 Category코드 ByNoYeah Views1045
    Read More
  2. 유튜브에 약간의 기능을 추가 해주는 크롬 확장 프로그램.

    Date2018.01.26 Category코드 ByHanam09 Views1078
    Read More
  3. 컴퓨터의 uuid 얻기

    Date2018.01.28 Category코드 Bytitle: 황금 서버 (30일)humit Views1241
    Read More
  4. CMD로 로컬 연결 고정 IP 설정하기

    Date2018.02.06 Category코드 Bytitle: 황금 서버 (30일)humit Views1092
    Read More
  5. Cmd 에서 서비스 시작 / 종료하기

    Date2018.02.18 Category코드 ByProjectSE Views698
    Read More
  6. 미완성 받아쓰기 (C)

    Date2018.04.20 Category코드 Bytitle: 대한민국 국기gimmepoint Views578
    Read More
  7. 아주 간단한 기초 C++

    Date2018.04.21 Category코드 By제르엘 Views571
    Read More
  8. Hello, World!를 출력해보자

    Date2018.04.21 Category코드 By네모 Views661
    Read More
  9. html 초보가 만든 자소서

    Date2018.04.21 Category코드 Bytitle: 대한민국 국기gimmepoint Views740
    Read More
  10. c 이진트리 전,중,후위 알고리즘

    Date2018.04.24 Category코드 Bytitle: 대한민국 국기gimmepoint Views645
    Read More
  11. HEX를 RGB로, RGB를 HEX로 바꾸는 PHP 코드

    Date2018.05.05 Category코드 By네모 Views682
    Read More
  12. 클라이언트단에서 이미지 리사이징

    Date2018.05.06 Category코드 By네모 Views1155
    Read More
  13. 내가 만든 함수 모음집

    Date2018.05.08 Category코드 Bytitle: 대한민국 국기gimmepoint Views529
    Read More
  14. 내가 만든 사칙연산 계산기

    Date2018.05.11 Category코드 Bytitle: 대한민국 국기gimmepoint Views646
    Read More
  15. 내가 만든 함수 모음집 2

    Date2018.05.12 Category코드 Bytitle: 대한민국 국기gimmepoint Views537
    Read More
  16. 내가 만든 merge sort

    Date2018.05.17 Bytitle: 대한민국 국기gimmepoint Views531
    Read More
  17. 매우 특이한 버그

    Date2018.06.05 Category코드 Bytitle: 대한민국 국기gimmepoint Views729
    Read More
  18. 잘못 쓰면 컴퓨터가 날아가는 코드

    Date2018.07.08 Category코드 By제르엘 Views1022
    Read More
  19. 폰트를 자동 설치하는 코드

    Date2018.07.16 Category코드 By네모 Views977
    Read More
  20. C언어 삼중자를 이용한 코드

    Date2018.07.22 Category코드 Bytitle: 황금 서버 (30일)humit Views484
    Read More
Board Pagination Prev 1 2 3 4 Next
/ 4