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
[2585] [답변] BJEANS/ AnsiString을 char형으로.../프포
박지훈.임프 [cbuilder] 4033 읽음    1999-12-26 13:36
안녕하세요. 천리안 프로그래머포럼 C++Builder 담당 임펠리테리입니다.

안시스트링은 내부적으로 문자열포인터를 갖고 있는 클래스이며, 내부적으로 가지고

있는 포인터의 값을 리턴하는 멤버함수가 c_str()입니다. 하지만, 이 함수가 리턴하는

포인터값은 내부적으로 사용하는 값이므로 여기에다 다른 값을 쓰면 안됩니다.

read-only라고 생각하는 것이 좋습니다. 그러므로 write 목적으로 사용하려면

strcpy()를 써서 새로운 다른 버퍼에 복사해서 사용해야 합니다.

하지만 api 함수의 인자로 넘길때, read용도로만 쓰인다면 그대로 c_str() 함수에서

넘어온 값을 그대로 쓸수 있습니다.

질문하신 경우에도, 리턴받은 안시스트링의 포인터를 다시 write용도로 쓰려고 한다면

새로운 버퍼를 만들어서 사용해야 하며, 그냥 읽기정도로만 쓰려면 그대로 쓰면

됩니다.

읽기로만 쓸 경우:

char *TT;
TT = ComboBox1->Items->Strings[0].c_str();  

write 용도로도 쓸 경우:

char *TT;
TT = new char[ComboBox1->Items->Strings[0].Length()+1];
strcpy(TT, ComboBox1->Items->Strings[0].c_str());

그럼 참고하시길...




임펠리테리 박지훈이었습니다.

(http://www.borlandforum.com, cbuilder@shinhae.com)




+ -

관련 글 리스트
2573 [질문] AnsiString을 char형으로.../프포 bjeans 4010 1999/12/24
2585     [답변] BJEANS/ AnsiString을 char형으로.../프포 박지훈.임프 4033 1999/12/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.