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
[41095] char aa[2]와 char *aa = new char[2]
@ㅏ^ㅏ달 [] 1728 읽음    2005-07-18 16:42
희한한일이 있습니다.
제가 잘 몰라서 그런건지...

unsigned char형 변수 temp를 함수 인자로 받아서
sprintf(aa, "%02x", temp); 로 aa에 값을 넣습니다.

그런데 aa가
char aa[2]; 이렇게 선언이 되면 릴리즈 모드에서 실행시 Access Violation에러가 납니다.
디버그 모드에서는 안나고요.

char *aa = new char[2]라고 하면 에러가 안납니다.

둘간의 차이가 스택에 메모리가 잡히는 것과 힙영역에 메모리가 잡히는 차이밖에 없는거 아닌가요?

디버그 모드에서는 변수 초기화를 안하더라도 자동으로 초기화를 시켜준다고 하더라구요.
릴리즈 모드에서는 초기화가 되지 않고요. 그래서 char aa[2]로 선언한것을 초기화 시켰습니다.
char aa[2] = {0x00, }; 이렇게요. 그래도 에러납니다.

이상한것은 이런형태의 다른 프로그램을 간단하게 만들어봤는데 두경우 모두 에러가 나지 않았습니다.
이게 무슨 상황인가요? 혹시 스택영역이 부족해서 그런가요?  도움 주실부운.......?

+ -

관련 글 리스트
41095 char aa[2]와 char *aa = new char[2] @ㅏ^ㅏ달 1728 2005/07/18
41099     Re:char aa[2]와 char *aa = new char[2] 유영인 Cuperido 1215 2005/07/18
41098     Re:char aa[2]와 char *aa = new char[2] 황경록 961 2005/07/18
41102         두분 정말 감솨합니다. 그런데 사이즈를 늘리면.... @ㅏ^ㅏ달 900 2005/07/18
41103             Re:두분 정말 감솨합니다. 그런데 사이즈를 늘리면.... evergreen 893 2005/07/18
41104                 Re:감사하니다. 하지만 궁금한것이 해결 안되네요. @ㅏ^ㅏ달 896 2005/07/19
41113                     Re:Re:감사하니다. 하지만 궁금한것이 해결 안되네요. evergreen 858 2005/07/19
41110                     Re:Re:감사하니다. 하지만 궁금한것이 해결 안되네요. 임영우 906 2005/07/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.