- Κώδικας: Επιλογή όλων
int table[4][4];
int *row1;
row1=table[1];
μπορεις να κανεις κατι αναλογο για να αναθεσεις ενα δεικτη σε μια στηλη του πινακα;
int table[4][4];
int *row1;
row1=table[1];
Garrus έγραψε:Για να αναθεσεις ενα δεικτη σε εναν 2D πινακα.
- Κώδικας: Επιλογή όλων
int table[4][4];
int *row1;
row1=table[1];
μπορεις να κανεις κατι αναλογο για να αναθεσεις ενα δεικτη σε μια στηλη του πινακα;

int main( void )
{
int nrows=5, ncols=10;
register int i,j;
int **array2d;
array2d = (int **) calloc( ncols, sizeof(int *) ); // δέσμευση μνήμης για 'ncols' δείκτες σε int (στήλες)
if ( !array2d ) // αποτυχία δέσμευσης...
return 1; // ανώμαλος τερματισμός προγράμματος
for (j=0; j < ncols; j++)
{
array2d[ j ] = (int *) calloc(nrows, sizeof(int) ); // δέσμευση μνήμης για 'nrows' int (γραμμή)
if ( !array2d[ j ] ) // αποτυχία δέσμευσης....
{ // απελευθέρωση όσων δεσμεύσαμε μέχρι τώρα
for (i=j; i > -1; i--)
free( array2d[ i ] );
return 1; // ανώμαλος τερματισμός προγράμματος
}
}
// σε αυτό το σημείο έχεις 'ncols' δείκτες (στήλες), με τον καθένα τους να δείχνει σε ένα πίνακα ακεραίων (γραμμές)
// οπότε κάνεις ότι θέλεις να κάνεις με τον 2Δ πίνακά σου
// απελευθέρωση της μνήμης που δεσμεύσαμε στην αρχή
for (j=0; j < ncols; j++)
for (i=0; i < nrows; i++)
free ( array2d[ j ][ i ] );
free( array2d );
return 0;
}
