|
TStringList *strList = new TStringList;
여기에서 생성된 strList를 Free하지 않았네요...
Nibble 님이 쓰신 글 :
: 그런식으로 써보지 않아서 잘 모르겠지만요.
: 대충 흘러보기에 태선님이 절차적으로 지적해 주신 것이 옳구요.
: 다만,
:
: strList->AddObject(ts->name, (TObject *)ts);
:
: 여기서, ts 는 TYPESTRUCT* 타잎이고,
: AddObject 는 TObject* 형을 원하잖아요?
:
: typedef struct _test 대신에 TObject를 상속 받은 클래스로 정의하고 테스트 해 보시지요.
: class TYPESTRUCT : public TObject
: {
: public:
: int age;
: char name[8];
: };
: 이런식으로용. 클래스 이름은 마음에 안들지만.
:
: 헬미 님이 쓰신 글 :
: : 답변 감사드립니다.
: :
: : 말씀하신대로 했는데도 여전히 codeguard를 키면 오류가 납니다. T_T
: :
: :
: : 김태선 님이 쓰신 글 :
: : : void __fastcall TForm1::Button2Click(TObject *Sender)
: : : {
: : : TStringList *strList = new TStringList;
: : :
: : : func_root(strList);
: : :
: : : for(int j = 0; j < strList->Count; j++)
: : : {
: : : TYPESTRUCT *abc = (TYPESTRUCT *)strList->Objects[j];
: : :
: : : Memo1->Lines->Add(abc->age);
: : : Memo1->Lines->Add(abc->name);
: : : Memo1->Lines->Add("--------");
: : :
: : : //delete abc;
: : : }
: : :
: : : while(strList->Count)
: : : {
: : : delete (TYPESTRUCT *)strList->Objects[0];
: : : strList->Delete(0);
: : : }
: : :
: : : delete strList;
: : : }
: : :
: : : 헬미 님이 쓰신 글 :
: : : : 아래 코드를 그냥 실행시키면 오류가 안납니다.
: : : :
: : : : codeguard를 키고 실행하면 종료시
: : : :
: : : : delete (TYPESTRUCT *)strList->Objects[0];
: : : : 이부분에서 오류가 나는것 같습니다.
: : : :
: : : : 오류 해결방법좀 부탁드릴께요....고수님들 도와주세요
: : : :
: : : : //---------------------------------------------------------------------------
: : : : typedef struct _test
: : : : {
: : : : int age;
: : : : char name[8];
: : : : }TYPESTRUCT;
: : : : //---------------------------------------------------------------------------
: : : : void __fastcall TForm5::Button1Click(TObject *Sender)
: : : : {
: : : : TStringList *strList = new TStringList;
: : : :
: : : : func_root(strList);
: : : :
: : : : for(int j = 0; j < strList->Count; j++)
: : : : {
: : : : TYPESTRUCT *abc = (TYPESTRUCT *)strList->Objects[j];
: : : :
: : : : Memo1->Lines->Add(abc->age);
: : : : Memo1->Lines->Add(abc->name);
: : : : Memo1->Lines->Add("--------");
: : : :
: : : : delete abc;
: : : : }
: : : :
: : : : while(strList->Count)
: : : : {
: : : : delete (TYPESTRUCT *)strList->Objects[0];
: : : : strList->Delete(0);
: : : : }
: : : : }
: : : : //---------------------------------------------------------------------------
: : : : void __fastcall TForm5::func_root(TStringList *strList)
: : : : {
: : : : TYPESTRUCT *ts = new TYPESTRUCT;
: : : :
: : : : objCopy("이름", "홍길동", ts);
: : : : objCopy("나이", "18", ts);
: : : :
: : : : strList->AddObject(ts->name, (TObject *)ts);
: : : : }
: : : : //---------------------------------------------------------------------------
: : : : void __fastcall TForm5::objCopy(String name, String value, TYPESTRUCT *ts)
: : : : {
: : : : if(name == "이름")
: : : : strcpy(ts->name, value.c_str());
: : : : else if (name=="나이")
: : : : ts->age = value.ToIntDef(0);
: : : : }
|