есть динамический массив
Код |
int **grid; int col=40,row=40;
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { grid=new int*[row]; for(short int i=0;i<row;i++) { grid[i]=new int[col]; grid[i][i]=0; } Label_Horizont->Caption=Label_Horizont->Caption + StringGrid_create->ColCount; Label_Vertikal->Caption=Label_Vertikal->Caption + StringGrid_create->RowCount;
}
|
Далее я с ним работаю и все хорошо, но после модификации массива
Код | void __fastcall TForm1::Timer1Timer(TObject *Sender) {
if(Form_create_new->done == true) { wait=1;//bool int n=0; for(;n++;n<row) { delete []grid[n]; grid[n]=NULL; } delete []grid; row = Form_create_new->row; col = Form_create_new->col; grid=new int*[row]; for(n=0;n++;n<row) { grid[n]=new int[col]; grid[n][n]=0; } StringGrid_create->Visible = false; StringGrid_create->ColCount = col; StringGrid_create->RowCount = row; StringGrid_create->Visible = true; Label_Horizont->Caption = "Горизонталь:"; Label_Horizont->Caption = Label_Horizont->Caption + StringGrid_create->ColCount; Label_Vertikal->Caption = "Вертикаль: "; Label_Vertikal->Caption = Label_Vertikal->Caption + StringGrid_create->RowCount; Form_create_new->done = 0;//bool wait=0; } }
|
Выдает ошибку доступа к памяти Access violation at adres in module
Код | void __fastcall TForm1::StringGrid_createDrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) {
if(wait!=1 && ARow<row && ACol<col) { if(grid[ARow][ACol]==1 )// В ось цьому місці { StringGrid_create->Canvas->Brush->Color = clRed; StringGrid_create->Canvas->FillRect(Rect); } if(grid[ARow][ACol]==2 ) { StringGrid_create->Canvas->Brush->Color = clWhite; StringGrid_create->Canvas->FillRect(Rect); } if(grid[ARow][ACol]==3) StringGrid_create->Cells[ACol][ARow] = "x"; } }
|
Подскажите пожалуйста где мой завтик. |