PDA

View Full Version : [C] MAtrice dinamica con righe consecutive


Unrue
08-05-2010, 11:34
Ciao a tutti,

una matrice allocata staticamente ha le righe consecutive in memoria, mentre una dinamica no. E' possibile usare un qualche trucco per allocare le righe della matrice dinamica consecutivamente? In modo cioè che l'ultimo elemento di una riga preceda in memoria il primo elemento della riga successiva. Questo si può fare linearizzando la matrice, ma vorrei sapere se è possibile farlo anche senza la linearizzazione. Spero di essermi spiegato in maniera chiara,

Grazie.

lock cmpxchg8b %ebx
08-05-2010, 11:50
int *elements = malloc(ROWS * COLUMNS * sizeof(int));
int **matrix = malloc(ROWS * sizeof(int *));

for (int i = 0; i < ROWS; ++i)
{
matrix[i] = elements + (i * COLUMNS);
}

//Ora puoi accedere normalmente (matrix[row][column]) alla matrice

Unrue
08-05-2010, 11:57
Grrrazie :D