안녕하세요.
저는 C++ Builder에서 TTreeView를 사용하고 있습니다.
TTreeNode의 프로퍼티 중에 Data라는 것이 있어 여기에 메모리를 할당하고
사용한 후에 delete 해주니 프로그램 종료시 잘못된 연산 에러가 뜹니다.
--
(C++Builder입니다)
TreeView1->Items->Item[x]->Data = new char[10];
...
delete[] TreeView1->Items->Item[x]->Data;
--
문제가 되는 부분은 위와 같습니다.
코드 실행할 때는 이상이 없는데 프로그램 종료할 때 에러가 나는군요.
delete 부분을 없애면 에러가 뜨지 않습니다.
TreeView나 TreeNode의 destructor중에 Data가 가리키는 곳을 찾아
삭제하는 루틴이 있는가요?
그럼... 미리 감사.
...
...
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TreeView1->Items->Item[0]->Data = new char[100];
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
delete[] TreeView1->Items->Item[0]->Data;
}
//---------------------------------------------------------------------------
전혀 문제가 없었습니다. 그래서 말인데....
delete[] TreeView1->Items->Item[x]->Data; 이 부분에서 x 의 인덱스가
잘못되는건 아닌지 살펴 보세요.
문승진 께서 말씀하시기를...
> 안녕하세요.
>
> 저는 C++ Builder에서 TTreeView를 사용하고 있습니다.
>
> TTreeNode의 프로퍼티 중에 Data라는 것이 있어 여기에 메모리를 할당하고
>
> 사용한 후에 delete 해주니 프로그램 종료시 잘못된 연산 에러가 뜹니다.
>
>
> --
> (C++Builder입니다)
> TreeView1->Items->Item[x]->Data = new char[10];
> ...
>
> delete[] TreeView1->Items->Item[x]->Data;
> --
>
> 문제가 되는 부분은 위와 같습니다.
>
> 코드 실행할 때는 이상이 없는데 프로그램 종료할 때 에러가 나는군요.
>
> delete 부분을 없애면 에러가 뜨지 않습니다.
>
> TreeView나 TreeNode의 destructor중에 Data가 가리키는 곳을 찾아
>
> 삭제하는 루틴이 있는가요?
>
> 그럼... 미리 감사.