|
int Rack_size;
이걸 먼저 선언해주시고.
Rack_size++;
Istr_Rack = new str_Rack[Rack_size];
Istr_Rack[Rack_size-1].RackNo = Rack_size;
Edit1->Text = Rack_size;
Istr_Shelf = new str_Shelf*[Rack_size];
for(int i = 0 ; i<Rack_size; i++)
{
Istr_Shelf[i]= new str_Shelf[Rack_size];
}
이렇게 생성해보세요.
돌맹이 님이 쓰신 글 :
: 구조체를 동적으로 생성해서 사용하려고 하는데요.
: 하나는 일차원, 다른하나는 2차원.
:
: typedef struct {
: public:
: bool Edit;
: int RackNo;
: int SubRack;
: AnsiString RackNm;
: AnsiString Type;
: int pos;
: TPanel *LPanel;
: }str_Rack;
: typedef struct {
: public:
: bool Edit;
: int RackNo;
: int ShelfNo;
: int SubRack;
: int pos;
: AnsiString ShelfNm;
: AnsiString Attr;
: TPanel *SPanel;
: }str_Shelf;
:
: str_Rack *Istr_Rack;
: str_Shelf **Istr_Shelf;
:
:
:
: 폼 생성할때
: Istr_Rack = new str_Rack;
: *Istr_Shelf = new str_Shelf; <- 오류
:
: 폼 죽을때
: delete Istr_Rack;
: delete *Istr_Shelf; <- 오류
:
: 컴파일은 되는데 실행시 오류가 납니다.
:
: 2차원을 막고 일차원만 실행해 봐도 한두번 돌다가 죽더군요.
:
: 한꺼번에 방의 크기를 잡아 두는게 아니라.
: 추가 버튼을 둬서 그버튼을 누를때마다 구조체 배열이 하나씩 늘어나야 합니다.
:
: 올바른 다차원 구조체 생성과 소멸, 사용에 관한 답변 부탁드립니다.
|