|
객체가 죽어서 그렇습니다.
TList는 객체의 포인터(void*)를 유지하는 것입니다. 객체는 다른곳에 살아 있어야 합니다.
AnsiString temp;에서 temp라는 객체는 함수가 끝나면 사라 지죠.
그래서 Items[0]은 객체는 없는 빈곳을 가리키고 있는 것입니다.
그래서 주로 쓸때는
이렇게 많이 씁니다.
TList* List = new TList;
char *pr;
pr = new char[30];
strcpy(pr,"hi");
List->Add(pr); 이렇게 해도 될듯합니다.
나중에 delete하는거 잊지 마시구요.
아님
TList* List = new TList;
AnsiString *temp;
temp = new AnsiString;
*temp = "hi";
이런식으로 되려나? 안해봐서 모르겠지만
처음 말씀 드린 이유는 맞습니당.
즐프하세요. 제 질문에도 답해 주세요.
심윤수 님이 쓰신 글 :
: TList *List = new TList;
: AnsiString temp = "hi";
:
: List->Add(&temp);
:
: 이렇게 넣었을때
:
: 빼낼려구 하는데 자꾸 안빠지네요..ㅠ.ㅜ
:
: AnsiString dest;
: dest = *((AnsiString*)(List->Items[0]));
:
: 이렇게 하면 안되나요???
|