Пытаюсь добавить столбец в конец динамического массива, код написал, отрабатывает, но почему-то сыпятся ассерты :( Компилятор не находит ошибки и пишет что всё ок, где-то я "не попал" в память, помогите пжлста разобраться и починить. VC++ 6.0. Если не обновлять значения в новом столбце, то всё отрабатывает на ура.
Код | #include "stdafx.h" #include <iostream.h> #include <math.h> #include <conio.h> #include <stdlib.h> #include <time.h> #include <iomanip.h>
int** massive(int row_count, int column_count) { int r; int** mass2 = new int*[row_count];
for(r = 0; r < row_count; r++) mass2[r] = new int[column_count];
return mass2; }
int** add_column(int** mass2,int row_count, int column_count) { int r; for(r = column_count; r <=column_count; r++) mass2[r] = new int[column_count];
return mass2;
}
void fill(int** mass2, int row_count, int column_count) { int i,j; for(i = 0; i < row_count; i++) { for(j = 0; j < column_count; j++) { mass2[i][j] = rand()%10; } } }
void update_matrix(int** mass2, int row_count, int column_count) { int i,j; for(i = 0; i < row_count; i++) { for(j = column_count-1; j < column_count; j++) { mass2[i][j] = 0; } }
}
void show(int** mass2, int row_count, int column_count) { int i,j; for(i = 0; i < row_count; i++) { cout<<endl; for(j = 0; j < column_count; j++) { cout<<"["<<i<<"]["<<j<<"]="<<mass2[i][j]<<setw(5); } }
}
void destroy_mass(int** mass2, int row_count, int column_count) { int r; for (r = 0; r<row_count; r++) delete [] mass2[r]; delete [] mass2;
}
int main() { int row_count,column_count;
row_count=4; column_count=4;
int** mass2; mass2=massive(row_count,column_count); fill(mass2,row_count,column_count); show(mass2,row_count,column_count); cout<<endl;
//add COLUMN column_count++; mass2=add_column(mass2,row_count,column_count); update_matrix(mass2,row_count,column_count); show(mass2,row_count,column_count); destroy_mass(mass2,row_count,column_count);
cout<<endl; return 0; }
|
|