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

C/C++ Q/A
[958] Re:재질문
오제호 [ohjeho] 1721 읽음    2002-08-06 09:14
포인터 변수의 건너뜀은 4바이트란 개념을 모르겠습니다.
쉽게 다시 한번 말씀해 주실수 있으신지요?

그리고 제가 질문한 내용이 좀 이해하기 어려우시죠?
그래서 질문했던 내용을 다시 질문합니다.
예를들어 다음 두개의 배열이 있을경우
char a[5]={...
char b[5]={...
메모리상에 b[0]부터 저장하고 a[4]를 마지막에 저장하는 것 같은데
b[4]의 어드레스와 a[0]의 어드레스가 어떤 연관이 있는지요?
즉 b[4]의 어드레스 다음에 저장되는 a[0]의 주소값은
반드시 XXXXXXX0,XXXXXXX4,XXXXXXX8,XXXXXXXC중 하나로 시작됩니다.
그렇기때문에 b[4]의 어드레스가 xxxxxxx3,xxxxxxx7,xxxxxxxB,xxxxxxxF일 경우에는
메모리상에 갭없이 a[0]가 바로 위치하지만
다른 주소일경우에는 메모리상에 갭이 존재하게 됩니다.
최대 3바이트가 비어있을 경우가 생기죠.

하지만 다음과 같이 포인터로 초기화한다면
char *a={...
char *b={...
메모리상에 a의 요소부터 위치하게 되며
b의 첫번째 요소의  어드레스는 a의 마지막 널값 다음에 위치합니다.
메모리상 어떤 갭이 존재하지 않게 됩니다.

gcc에서도 동일하고 builder에서도 동일한 현상을 보입니다.
32비트 컴파일러가 그런건가요?

제 질문의 의도를 아시겠나요?
그럼 답변 부탁드립니다.


+ -

관련 글 리스트
957 Re:포인터 size는 4바이트 고정이죠? 남병철.레조 1900 2002/08/05
958     Re:재질문 오제호 1721 2002/08/06
959         Re:Re:재질문 오전&오후 1572 2002/08/06
960             Re:Re:Re:재질문 오제호 1698 2002/08/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.