Problem z dwuwymiarową tablicą dynamiczną
Ostatnio zmodyfikowano 2016-01-08 13:14
Matis28 Temat założony przez niniejszego użytkownika |
Problem z dwuwymiarową tablicą dynamiczną » 2016-01-08 09:42:02 cześć mam problem z moim kodem. Wszystko działa dobrze do switcha a po nim bywa różnie raz wypisze mi tablice raz nie. Czym to może być spowodowane? Chciałbym jeszcze zapytać czy dobrze stworzyłem i zniszczyłem tablicę? #include <iostream> #include <stdlib.h> #include <ctime>
using namespace std;
int main() { srand( time( NULL ) ); int m, n, a, w1, w2, max; w1 = w2 = max = 0; cout << "podaj wymiary tablicy: "; cin >> m >> n; int ** tab; tab =( int ** ) malloc( m + 1 ); for( int i = 0; i < n; i++ ) tab[ i ] =( int * ) malloc( n + 1 ); cout << "[1]-Wczytaj wlasne liczby\n[2]-Wczytaj losowe liczby" << endl; cin >> a; switch( a ) { case 1: cout << "Podaj liczby: " << endl; for( int i = 0; i < m; i++ ) { cout << endl; for( int j = 0; j < n; i++ ) cin >> tab[ i ][ j ]; } break; case 2: for( int i = 0; i < m; i++ ) for( int j = 0; j < n; j++ ) tab[ i ][ j ] = rand() % 101 + 0; break; } for( int i = 0; i < m; i++ ) for( int j = 0; j < n; j++ ) if( max < tab[ i ][ j ] ) { max = tab[ i ][ j ]; w1 = i; w2 = j; } for( int i = 0; i < m; i++ ) { cout << endl; for( int j = 0; j < n; j++ ) cout << tab[ i ][ j ] << " "; } cout << "Wartosc maxymalna w tablicy: tab[" << w1 << "][" << w2 << "] = " << max; for( int i = 0; i < n; i++ ) free( tab[ i ] ); free( tab ); return 0; } |
|
j23 |
» 2016-01-08 10:34:36 tab =( int ** ) malloc( m + 1 );
for( int i = 0; i < n; i++ ) tab[ i ] =( int * ) malloc( n + 1 ); |
Pętla powinna kręcić się tyle razy, ile jest wierszy (czyli m), a teraz kręci się tyle, ile jest kolumn - to błąd. To samo z usuwaniem. |
|
Matis28 Temat założony przez niniejszego użytkownika |
» 2016-01-08 10:53:12 poprawiłem ale błąd nie zniknął. Nadal wyskakują błędy po wyświetleniu tablicy. |
|
darko202 |
» 2016-01-08 13:14:21 |
|
« 1 » |