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

C++빌더 Q&A
C++Builder Programming Q&A
[3731] Re:[Test] builder 5 의 버그인것 같은데 테스트 해주세요.
물소리 [] 3342 읽음    2000-07-13 00:00
안녕하세요^^ 소리랍니다!

음..sizeof()의..버그라고..말씀하셨는데요..

천만의..말씀입니다!

그건..그렇게..나오는..것이..당연합니다!

윈도우에서는..메모리를..32Bit 즉..4바이트단위로..할당하기..땜에..

나오는..현상입니다..

아마도..ch1의 크기를..6으로..하셔도 36이라구..나올것입니다..

만약..ch1을 9로하면..생각하기에..37이..나올것 같지만..40이..나오게..됩니다!

그렇게..하는..이유는.메모리..관리와..관련해서..깊은..뜻이..있습니다..

만약..향기님께서..원하는..결과를..돌출코자..한다면..

Project Options -> Advanced Compiler->Data Alignment를 Byte로 선택하세요..

그러면..아마..원하는..결과를..얻을것입니다..단..요렇게..하면..프로그램..

수행속도는..그렇게..티가 나지는..않겠지만..아마도..느려질 것입니다1

그럼...도움이..되었기를...




                                                - Irvine에서 소리였습니다!

향기 님이 쓰신 글 :
: struct TTest {
:   int i;
:   float f;
:   char ch1[5];
:   char ch2[20];
: } Test;
:
: window 에서
:
: sizeof(Test.i) = 4
: sizeof(Test.f) = 4
: sizeof(Test.ch1) = 5
: sizeof(Test.ch2) = 20
:
: 인것은 너무나 당연하죠! 그런데
: sizeof(Test) 하면 값이 36 이 나옵니다.
:
: 4 + 4 + 5 + 20 = 33 이 되어야 되지 않겠습니까?
:
:
: 빌더 4도 똑같이 나옵니다.
:
: 도스에서 해봤더니
: 31 이 나오더군요.. 왜냐면 sizeof(i) = 2 기때문이죠.. int 를 long 으로 바꾸니
: 33 이 나오는 군요..
:
:
: 제 생각엔 빌더 자체의 버그던지 아니면 sizeof 의  bug 인것 같습니다.
:
: 제 컴만 이상한가요? 빌더 사용자 여러분들 Test 좀 부탁드립니다.
:
: 화일을 올리려고 했더니.. 어디다 올리죠?

+ -

관련 글 리스트
3729 [Test] builder 5 의 버그인것 같은데 테스트 해주세요. 향기 3071 2000/07/13
3731     Re:[Test] builder 5 의 버그인것 같은데 테스트 해주세요. 물소리 3342 2000/07/13
3732         Re:Re:[Test] 감사 향기 3397 2000/07/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.