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
[70425] Re:감사합니다!!!!!!!!!!!!!
송신영 [palindrome] 2973 읽음    2013-12-03 18:01
pStr = new WCHAR(strSize);
이렇게 하면 WCHAR 변수 하나만 생성되고 그 값이 strSize 값으로 초기화 될 뿐입니다.

pStr = new WCHAR[strSize];
이렇게 해야 원하는 WCHAR 배열 메모리를 얻을 수 있습니다.


김동석 님이 쓰신 글 :
: 정말 생각지도 못한곳에 틀린곳이 있었네요 ㅠㅠ
:
: 여기저기 다 뜯어고쳐보고..별짓을 다했었는데 ㅠㅠ
:
: 감사합니다!!!
:
: 송신영 님이 쓰신 글 :
: : 아래 두 코드의 차이점을 생각해 보세요..
: :
: :
: : pStr = new WCHAR(strSize);  // 아니죠..
: : pStr = new WCHAR[strSize];  // 맞죠...
: : 

: :
: : 김동석 님이 쓰신 글 :
: : : \\이건 오타였습니다...
: : :
: : : 브레이크를 걸어도 확인이 되지않습니다.
: : :
: : : 버튼을 눌렀을 때, 파일을 만드는 일을 합니다.
: : :
: : : 그리고 함수를 빠져나가서 시스템에서 죽습니다.
: : :
: : : 한두번 눌러선 안그러고 여러번 버튼을 누르다 보면 죽습니다.
: : :
: : : 에러창이뜨고 멈추는 지점은
: : :
: : : GETMEN.INC
: : :
: : : @LockBlockTypeLoop:
: : :   mov eax, $100
: : :   {Attempt to grab the block type}
: : :   lock cmpxchg TSmallBlockType([ebx]).BlockTypeLocked, ah <--이 부분이였습니다.
: : :   je @GotLockOnSmallBlockType
: : :   {The pause instruction improves spinlock performance}
: : :   pause
: : :   {"Busy waiting" or "sleep and retry" strategy?}
: : :   cmp NeverSleepOnMMThreadCon
: : :
: : : delete 도  delete[]로 수정하였습니다.
: : :
: : :
: : :
: : :
: : :
: : : 송신영 님이 쓰신 글 :
: : : : AnsiString strFilePath = "C:\Test";
: : : : 이 부분이 수정이 되었나요?
: : : :
: : : : AnsiString strFilePath = "C:\\Test";
: : : : 이렇게 해야 파일 경로가 정상적으로 설정됩니다.
: : : :
: : : : 브레이크를 걸어서 정확하게 Error가 발생하는 시점을 확인해보세요...
: : : :
: : : : 김동석 님이 쓰신 글 :
: : : : :  fp = _wfopen(pStr, L"wb, ccs=UNICODE");
: : : : : 이렇게해도 fp는 Null값이 아니고 갑이 들어오고 파일도 생성이 됩니다..
: : : : :
: : : : :  fp = _wfopen(pStr, L"wb");
: : : : : 이렇게 해야 정상적인건가요?
: : : : :
: : : : : delete[]로 변경하였습니다..
: : : : :
: : : : : 그래도 스레드 에러가 나네요..
: : : : :
: : : : : 메세지 박스
: : : : : Access violation at address 0044C5A9 in module 'test.exe'. Read of Address C885CD54.
: : : : :
: : : : : Thread Exit: Thread ID: 2980. Process LabelBlockPrint.exe (3644)
: : : : :
: : : : : 송신영 님이 쓰신 글 :
: : : : : : Error가 안나는 경우가 이상한것 같군요...
: : : : : :
: : : : : :  fp = _wfopen(pStr, L"wb, ccs=UNICODE");
: : : : : :
: : : : : : 에서 fp가 NULL일 겁니다.
: : : : : : 왜일까요???
: : : : : :
: : : : : : delete 도  delete[]를 해야하지 않을까.... 하는 염려가..
: : : : : :
: : : : : :
: : : : : : 김동석 님이 쓰신 글 :
: : : : : : : 제가 지금 유니코드형식으로 txt파일을 만드려고 하는데요.
: : : : : : :
: : : : : : : 만드는덴 성공했는데 메모리 에러가 나는거 같아 문의드립니다.
: : : : : : :
: : : : : : : setlocale(LC_ALL, "korea");
: : : : : : : FILE *fp;
: : : : : : : char Path[256];
: : : : : : : wchar_t* pStr;
: : : : : : : AnsiString strFilePath = "C:\Test";
: : : : : : : AnsiString strFileName = "test.txt";
: : : : : : : AnsiString strTest = "가나다abc123";
: : : : : : :
: : : : : : : sprintf(Path, "%s\\%s", strFilePath, strFileName);
: : : : : : : int strSize = MultiByteToWideChar(CP_ACP, 0, Path, -1 , NULL, NULL);
: : : : : : : pStr = new WCHAR(strSize);
: : : : : : : MultiByteToWideChar(CP_ACP,0,Path,strlen(Path)+1,pStr,strSize);
: : : : : : :
: : : : : : : fp = _wfopen(pStr, L"wb, ccs=UNICODE");
: : : : : : :
: : : : : : : fwprintf(fp,L"%S\n", strTest);
: : : : : : :
: : : : : : : fclose(fp);
: : : : : : :
: : : : : : : delete pStr;  // <-----에러가 나서 이걸 추가했습니다. 허나 이것도 에러가 나는거 같습니다.
: : : : : : :
: : : : : : : 에러가 누를때 마다 나는것도 아니고 불규칙적으로 발생합니다..
: : : : : : :
: : : : : : : 제가 빠뜨린 부분이 있나요?

+ -

관련 글 리스트
70403 메모리 해제 관련 질문이요. 김동석 2598 2013/12/02
70408     Re:메모리 해제 관련 질문이요. - 수정 주누 2716 2013/12/02
70404     Re:메모리 해제 관련 질문이요. 송신영 2524 2013/12/02
70407         Re:Re:메모리 해제 관련 질문이요. 김동석 2543 2013/12/02
70409             Re:Re:Re:메모리 해제 관련 질문이요. 송신영 2506 2013/12/02
70420                 Re:Re:Re:Re:메모리 해제 관련 질문이요. 김동석 2616 2013/12/03
70423                     Re:Re:Re:Re:Re:메모리 해제 관련 질문이요. 송신영 2875 2013/12/03
70424                         감사합니다!!!!!!!!!!!!! 김동석 2602 2013/12/03
70425                             Re:감사합니다!!!!!!!!!!!!! 송신영 2973 2013/12/03
70422                     Re:Re:Re:Re:Re:메모리 해제 관련 질문이요. 김동석 2495 2013/12/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.