|
안녕하세요 Lyn님 그게 아니라 반드시 char * 값을 가지는 return을 하고 싶은데...
어케해야 힙에서 해제되는지 궁금해서요? ㅠㅠ 역쉬 질문이 이상했어 ㅜㅜ
Lyn 님이 쓰신 글 :
: 다 쓰면 해제해야죠 ㅡ.ㅡ;;
:
: 가장 안전한 방법은 리턴을 받는것이 아니라 리턴을 받아올 변수를 인자로 같이 넘겨주는겁니다.
: 그러면 맘대로 해제 해도 되죠 ㅡ.ㅡ
: [
:
: 빨간눈 님이 쓰신 글 :
: : strtok에서나 기타 return 으로 char * 값을 갖는 API함수들은 기능 구현을 어떻게 해야될지 의문이 있어서요~
: : return으로 char *를 갖는 값은 내부 API에서 포인터에 동적 할당(힙???)과 해제가 이루어져야되는데
: : 메모리 할당은 되는데 해제 언제 어떻게 해야될까요? 질문이 이상한가요? ㅠㅠ
: :
: : char * __fastcall TMainForm::VersionData(char *cdata)
: : {
: : char *cPdata;
: : char cVer[20]={0,};
: : cPdata = new char[strlen(cdata)+1];
: : sprintf(cPdata,"%c%c%c%c%c%c%c",cdata[1],cdata[2],cdata[3],cdata[5],cdata[6],cdata[8],cdata[10]);
: : //memcpy(dest, cPdata, strlen(cdata)+1);
: : return cPdata;
: : }
|