[ Bostek @ 02.06.2010. 21:15 ] @
Imam problem s 2D nizom čija "dublja" dimenzija treba da se alocira van procedure u kojoj je deklarisan i u kojoj se alocira "plića" dimenzija. Donji code je esencija problema (jako pojednostavljeno u odnosu na original). Varijanta 1 je ono sto provereno radi O.K., a varijanta 2 je ono sto mi treba, ali dobijam crash s C++/MinGW pod Qt-om. Code: //VARIJANTA 1 void cfunc(int j, int &k, double **Niz) { //... k = 15; Niz[ j ] = new double[ k ]; for( int i = 0; i < k; i++ ) Niz[ j ][ i ] = i; //... } void bfunc(int j, int &k, double **Niz) { //... cfunc(j, k, Niz); //... } void main() { //... double **Niz; int Dim1 = 10, k; Niz = new double*[ Dim1 ]; for( int j = 0; j < Dim1; j++ ) { bfunc(j, k, Niz); //... } } //VARIJANTA 2 void cfunc(int &k, double *Niz_j) { //... k = 15; Niz_j = new double[ k ]; for( int i = 0; i < k; i++ ) Niz_j[ i ] = i; //... } void bfunc(int &k, double *Niz_j) { //... cfunc(k, Niz_j); //... } void main() { //... double **Niz; int Dim1 = 10, k; Niz = new double*[ Dim1 ]; for( int j = 0; j < Dim1; j++ ) { bfunc(k, Niz[ j ]); //... } } Ima li neko ideju gde grešim kod varijante 2? |