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

델파이 Q&A
Delphi Programming Q&A
[12432] 포인터 형 변환에 대해서...
이용태 [kidary97] 2075 읽음    2009-02-11 13:15
아래 소스와 같이... char형 배열을 하니 생성하고... 거기에 값을 대입합니다.


a[]의 값은
a[0] = 0x00
a[1] = 0x02
입니다.

ShowMessage로 출력하면 0, 2 값이 출력됩니다.

그런데 이것을 short형 포인터로 변환해서 2바이트 값을 액세스 할려고 하는데요...

short로 해서 값을 액세스 하면...

0x00 0x02 이므로 값이 2가 나와야 하는거 아니가요?

디버깅을 해보니까... 바이트 위치가 바뀌어서 값이 출력되더라구요

0x02 0x00 --> 512출력...

이거 왜 그런겁니까?

다른 포인터로 형 변환할경우 바이트 위치가 바뀝니까?


void __fastcall TForm1::Button2Click(TObject *Sender)
{
    char a[2];

    memset(&a[0], 0x00, 1);
    memset(&a[1], 0x02, 1);

    ShowMessage(IntToStr(a[0]) + "-" + IntToStr(a[1])); //<------ "0-1" 출력

    short *pData = NULL;

    pData = (short*)a;

    ShowMessage(IntToStr(pData[0])); //<------ "512"출력


}
//---------------------------------------------------------------------------

+ -

관련 글 리스트
12432 포인터 형 변환에 대해서... 이용태 2075 2009/02/11
12433     Re:포인터 형 변환에 대해서... 초보대왕 1782 2009/02/11
12437             Re:Re:Re:포인터 형 변환에 대해서... 초보대왕 1771 2009/02/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.