2014-04-21 3 views
0

J'allocation de mémoire pour un tableau 2d dynamiquement en utilisant le code ci-dessous,ajoutant des colonnes supplémentaires à la matrice

int **matrix = (int **) malloc(testVals[m].rows*sizeof(int)); 
for(int i = 0 ; i < testVals[m].rows ; i++) 
    matrix[i] = (int *) malloc(testVals[m].columns*sizeof(int)); 

mais je suis dans le besoin d'ajouter des lignes et des colonnes supplémentaires selon les besoins. Je suis en mesure d'ajouter des lignes supplémentaires comme celui-ci, où je convertir la matrice à matrice carrée

for(i = rows ; i < cols ; i++) 
mat[i] = (int *) malloc(cols*sizeof(int)); 

mais comment faire pour ajouter des colonnes?

+0

comment 'textVals' est-il déclaré? – chouaib

+0

ceux qui accèdent à la structure .. c'est juste le nombre de lignes et de colonnes –

Répondre

0

Vous pouvez utiliser realloc sur chaque ligne si vous avez besoin d'ajouter une colonne: C'est, si vous avez besoin d'ajouter des colonnes N, vous réallouer chaque ligne en étendant chacun d'entre eux par N.

EDIT: Vous pouvez regarder ceci possible duplicate

+0

les valeurs stockées avant seront maintenues? –

+0

Oui (lisez mon lien ci-dessus sur realloc). Les valeurs sont conservées, seule la mémoire supplémentaire est allouée. Est-ce que ça répond à votre question ? – quantdev

+0

il fait :) Merci –

Questions connexes