|
아래 코드를 그냥 실행시키면 오류가 안납니다.
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);
}
|