Se connecter / S'enregistrer
Votre question

malloc d'un double tableau

Tags :
  • Direct
  • Programmation
Dernière réponse : dans Programmation
17 Novembre 2004 13:48:49

Bonjour comment fait on pour malloquer un double tableau en c. (tab[][]). merci.

Autres pages sur : malloc double tableau

17 Novembre 2004 13:50:13

Tu peux malloquer ta premiere dimension, puis tu parcours la deuxieme en mallocant au fur et a mesure...
17 Novembre 2004 13:51:56

tab[1][2]
tu fait malloc tab[1] avec la taille du nombre de [2]

ca l'alloue a une case de memoire

apres tu fait une boucle qui va parcourir les [1] et allouer la taille des [2]

attend jvai rechercher direct du code c + simple en + me suis ptet gourrer ca fait longtemp :D 
Contenus similaires
17 Novembre 2004 13:55:17

double **tab;
tab = (double**)malloc( taille*sizeof(double*) );

for (i=0 ; i<taille ; i++)
{
*(tab+i) = (double*)malloc( taille2*sizeof(double) );
}


tu peux faire la même chose avec des new ....

pr libérer la mémoire :

for (i=0;i<taille;i++)
{
free(*(tab+i));
}
free(tab);
17 Novembre 2004 14:02:36

Balancer ça avec des pointeurs pour qq'un qui connait pas les tab à 2 dimensions, c hard ! Mais c sûr qu'on apprend mieux de cette façon...
Et y'a une p'tite erreur, la première ligne :

double ** tab;
17 Novembre 2004 14:03:40

Pq il ne connaitrais pas les pointeurs?
17 Novembre 2004 14:04:50

Citation :

AurelGTS a écrit :
Balancer ça avec des pointeurs pour qq'un qui connait pas les tab à 2 dimensions, c hard ! Mais c sûr qu'on apprend mieux de cette façon...
Et y'a une p'tite erreur, la première ligne :

double ** tab;


c'est corrigé ;-)

utiliser malloc sans connaitre les pointeurs de toute facon ...
17 Novembre 2004 14:07:51

Non, je dis qu'il connait pas les tableaux à 2 dimensions. Et si tu connais pas ça, y'a peu de chance que tu connaisses les pointeurs vu que c avec ces tableaux que tu apprends le mieux... C tout
17 Novembre 2004 16:14:50

si je connai les pointeurs, et aussi les tableaux a deux dimension le seul probleme cest que je sait pas allouer la memoire suiffisante dans un tableau a double dimension quand on connait pas le nombre delements.
17 Novembre 2004 16:36:44

A ce moment là, y'a du boulot... Il faut redimensionner tes tableaux au fur et à mesure que tu ajoutes les éléments style :

ajout en x : (tab[x][y])
int **tab;
int taille = tailleDeTonTabDorigine;//taille de tab[] quoi...
// First we copy the old tab
int**tab2 = (int**)malloc(sizeof (int*)*nbVoulu);
for(int i=0; i<taille ; i++) {
tab2 = tab;
}
//là tu ajoutes tes nouvelles lignes en Y
tab[taille+1] = malloc...
tab[taille+2] = malloc...

free (tab); //là faut faire gaffe qu'il supprime pas les lignes (y), vérifie ça je suis pas sûr

tab = tab2;

Et Ajout en y :
Là il faut faire une boucle for sur le nombre de ligne, faire une autre boucle for sur le nombre d'élément. Ensuite tu copies les éléments de l'ancienne ligne dans une nouvelle ligne (que tu auras créé avec la bonne taille).
17 Novembre 2004 16:43:26

ok cest chaud quand meme je vait voir se que je peux faire merci.
17 Novembre 2004 16:47:33

c'est vrai ue redimensionner un tableau en cours de route c'est pas évident ... pour faire simple , tu alloue un tableau avec une taille suffisante, en sachant qu'une partie ne sera pas utilisée ..

enfin faut voir ce que tu veux faire ;-)
17 Novembre 2004 16:49:50

Ou utiliser 'realloc'...
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS