Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[651] Re: 재밌었습니다^^
김인구.구야 [whileone] 1955 읽음    2002-05-19 01:24
밑에 분이 말씀하신데로
int *pi = 97; 은 컴파일 타임 경고입니다.(Nonportable pointer conversion)
int *pi = (int *)97은 아니지만요...(근데 이게 무슨 의미지...???)
바로 실행(Ctrl+F9) 하시기전에 컴파일(Alt+F9) 해보시는게 좋습니다.
런타임 에러 방지의 한 방법이 아닐런지요...
실행되는걸 보면 컴파일러의 융통성이라고 해야하는건지 모르겠지만...

저도 첨에 설마하고 노가다(100번...ㅠ.ㅠ)했습니다.
저는 BC++3.1에서 했는데 정말로
"Borland C++ - Copyright 1991 Borland Intl. Null pointer assignment
Divide error
Abnormal program termaination"
이 찍히더군여...

머리 터지도록 고민해봤습니다.
그치만 답이 안나옵니다...
혹시 볼랜드에서 컴파일 만든 개발자들이 만든 "이스트 에그"가 아닐까 하는 생각까지... 미처...
왜냐면 밑에 소스는 컴파일에러도 없고 링크에러도 없고 실행도 되는데
똑같이 찍히니 말입니다...
그냥 해본말이구요
char *ip = (char *)4;
이게 무슨 의미인지 파악하면 답이 나올거 같습니다...만 머리가 터질꺼 같아서리...

노가다 안하고 확인하는법을 올립니다.
설마 하시는분 돌려보세요...

#include <stdio.h>
#include <conio.h>

void main(void)
{
    int i;
    char *ip = (char *)4;

    clrscr();
    for (i=0; i<113; i++)
    {
        getch();   // 귀찮으신분은 getch()를 주석처리하세요(하지만 극적효과를 위해^^)
        printf("%c", *(ip++));
    }
    getch();
}

실행시키고 아무키나 113번만 눌러주세요^^

그리고 아스키코드는 ROM-BIOS에 저장되어 있다고 합니다.
어디서 봤었는지 기억이 안나지만 찾으면 자세히 말씀드리죠...
그리고 혹시 메모리 97번지에 어떤 값이 들어있는지 궁금하신거라면
간단하게 도스창에서 debug로 메모리를 덤프해보세여...

+ -

관련 글 리스트
632 아스키 코드와 실제 메모리에 저장된 값에 대해서.. 금윤섭 2092 2002/05/16
3413     Re:아스키 코드와 실제 메모리에 저장된 값에 대해서.. 오르막 1870 2002/05/17
3412     Re:아스키 코드와 실제 메모리에 저장된 값에 대해서.. 오르막 1812 2002/05/17
651     Re: 재밌었습니다^^ 김인구.구야 1955 2002/05/19
637     Re:아스키 코드와 실제 메모리에 저장된 값에 대해서.. 오르막 1930 2002/05/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.