Вот сокращенный вариант, одна из твоих ошибок это обьявление по многу раз переменных с одним и тем же именем, в частности массив int **temp ты соз даешь второй раз локально для цикла, int i, int j по многу раз?
| Код | #include <iostream.h> #include <time.h> #include <stdio.h> #include <conio.h> #include <math.h> #include <dos.h> #include <stdlib.h> #include <mem.h> #include <string.h>
void main() {
const int n=4, r1=10;
int MK[ r1 ][ n ]={{0,0,0,0},{0,0,0,1},{0,0,1,0},{0,1,0,1}, {0,1,1,0},{0,1,1,1},{1,0,0,1},{1,1,0,0}, {1,1,0,1},{1,1,1,0}}; //massiv edinichnyh konyunkciy
int **temp, **copytemp, j, i, ii, c; int sum=0, rtemp=r1;
for( i=0; i<rtemp; i++ ) //динамическая копия оригинала for( j=0; j<n; j++) temp[ i ][ j ]=MK[ i ][ j ];
for( rtemp=r1; rtemp<(r1*2); /*rtemp++*/ ) { copytemp=new int*[ rtemp ]; //память под старый массив for( j=0; j<rtemp; j++ ) copytemp[ j ]=new int[ n ];
for( i=0; i<rtemp; i++ ) for( j=0; j<n; j++ ) //запомнили старый массив copytemp[ i ][ j ]=temp[ i ][ j ];
for( j=0; j<rtemp; j++ ) delete [] temp[ j ]; delete [] temp; //удалили дин коп оригинала
rtemp++; temp=new int*[ rtemp ]; //создали новый на один ряд больше for( i=0; i<rtemp; i++ ) temp[ i ]=new int[ n ];
for( i=0; i<(rtemp-1); i++ ) for( j=0; j<n; j++ ) temp[ i ][ j ]=copytemp[ i ][ j ];
//- - - -- - --- - - - for( j=0; j<n; j++ ) temp[ rtemp-1 ][ j ]=1; // для примера единичками заполнить новый ряд
cout << endl << "------------------------" << endl; for( i=0; i<rtemp; i++ ) { for( j=0; j<n; j++) cout << temp[ i ][ j ] << " "; cout << endl; } getch();
for( j=0; j<rtemp; j++ ) delete [] copytemp[ j ]; delete [] copytemp;
}
for( j=0; j<rtemp; j++ ) delete [] copytemp[ j ]; delete [] copytemp[ j ];
for( j=0; j<rtemp; j++ ) delete [] temp[ j ]; delete [] temp[ j ]; return; }
|
но все-равно почему-то слегка глючно( этот new delete ) |