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
[68383] Re:Re:Re:Re:메모리 해제할때 에러가 납니다
송신영 [palindrome] 1246 읽음    2012-10-15 11:56
혹시 작성하신 함수 호출할 때 인자로 NULL 값을 넣으신거 아닌가요?
test() 함수 안에서 들어온 인자 값이 NULL인지 확인 후
적절한 처리를 해줘야합니다.
NULL일 경우도 아래 코드 수행되면 Error 입니다....
그런데 NULL이면 strlen()에서 이미 Error가 날텐데... 쩝...

송신영 님이 쓰신 글 :
: 저는 에러 안나는데요...
: C++ Builder 2010...
:
: 권혁준 님이 쓰신 글 :
: : 주소가 다르다는게 str2 를 말씀하시는건지요?
: : 아래처럼 해봤을때 같은 주소가 나오는데요 어떤거 말씀하시는건지 모르겠어요.
: :
: : void test(char* str){
: :     int i=0;
: :     int size=strlen(str)+1;
: :     char *str2;
: :
: :     str2 = (char *)calloc(size, sizeof(char));
: :
: :     printf("%x\n", str2); <== 주소 : 1d1478 출력
: :
: :     while(*str2++ = *str++);
: :     *str2 = '\0';
: :
: :     str2-=size;
: :     str-=size;
: :     printf("%s %s\n", str2, str);
: :
: :     printf("%x\n", str2);  // <== 주소 : 1d1478 출력
: :
: :     free(str2);
: : }
: :
: :
: : Lyn 님이 쓰신 글 :
: : : 처음할당한 str2랑 해제시의 str랑 위치가 다르네요.
: : :
: : : 권혁준 님이 쓰신 글 :
: : : : void test(char* str){
: : : :     int i=0;
: : : :     int size=strlen(str)+1;
: : : :     char *str2;
: : : :
: : : :     str2 = (char *)calloc(size, sizeof(char));
: : : :
: : : :     while(*str2++ = *str++);
: : : :     *str2 = '\0';
: : : :
: : : :     str2-=size;
: : : :     str-=size;
: : : :     printf("%s %s\n", str2, str);
: : : :
: : : :     free(str2);
: : : : }
: : : :
: : : : 안녕하세요.  공부중에 도저히 몰라서 질문드립니다.
: : : : 위 함수를 실행시키면 제일 아래 free 에서 에러가 나는데 왜 그런지 알고싶습니다.
: : : : 문자열조작하는거 공부중인데 많이 어렵네요.

+ -

관련 글 리스트
68379 메모리 해제할때 에러가 납니다 권혁준 1295 2012/10/15
68380     Re:메모리 해제할때 에러가 납니다 Lyn 1345 2012/10/15
68381         Re:Re:메모리 해제할때 에러가 납니다 권혁준 1360 2012/10/15
68382             Re:Re:Re:메모리 해제할때 에러가 납니다 송신영 1310 2012/10/15
68383                 Re:Re:Re:Re:메모리 해제할때 에러가 납니다 송신영 1246 2012/10/15
68384                     Re:Re:Re:Re:Re:메모리 해제할때 에러가 납니다 권혁준 1336 2012/10/15
68388                         Re:Re:Re:Re:Re:Re:메모리 해제할때 에러가 납니다 ㅅㅅㅎ 1339 2012/10/15
68392                             Re:저도 질문 할게요 외토리 1274 2012/10/15
68389                             Re:Re:Re:Re:Re:Re:Re:메모리 해제할때 에러가 납니다 송신영 1347 2012/10/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.