Realloc

yffff24 Messages postés 3 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 8 avril 2008 - 7 avril 2008 à 18:34
yffff24 Messages postés 3 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 8 avril 2008 - 8 avril 2008 à 15:49
Bonjour,

Voila j'ai un petit problème en C lors de l'allocation d'un tableau. Je dois reallouer un tableaux à deux dimenssion dans une fonction secondaire alors que le tableau est lui dans la fonction principale. Voici la partie du code concernée:

main:

char** pp_nom;
void reallouer (&pp_nom, longueur,nbr_personne);      (longuer et nbr_personne sont les dimension du tableau)

fct secondaire:

void reallouer (char*** ppp_nom, int longueur, int nbr personne)
{
    int r;

   *ppp_nom = (char**) realloc (*ppp_nom, nbr_personne*sizeof(char*);
   **pp_nom = (char*) realloc (**pp_nom, nbr_personne*longueur*sizeof(char);
   for(r=1 ; r<nbr_personne ; r++)
   {
      (*ppp_nom)[r] = (**ppp_nom) + (r*longueur);
   }
}

voila lorsque je compile (Visual 6.0) je n'ai pas d'erreur.
à l'execution lors de lapp'el de la fonction une erreur window me dit qu'un pointeur fait defaut (acces non autorisé?)

j'ai procédé par étape, la 1ere ligne (*ppp_nom = ...) semble fonctionner correctement, la suivante pas !

Merci de votre aide.

4 réponses

cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
7 avril 2008 à 18:46
Bonjour,
pp_nom est déclaré dans main() et reallouer() compile ?

Jean-François
0
yffff24 Messages postés 3 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 8 avril 2008
7 avril 2008 à 22:04
oui, je n'ai mis qu'une partie du code, celle qui bug. je n'ai pas d'erreur de compilation ni de liaison. le programme bug cependant lors de l'éxécution.

Yf
0
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
7 avril 2008 à 23:03
Je ne comprends pas comment la fonction reallouer() compile sans erreur vu que pp_nom n'est déclaré ni dans la fonction ni en variable globale !

Jean-François
0
yffff24 Messages postés 3 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 8 avril 2008
8 avril 2008 à 15:49
mille excuses! il ne s'agit pas de **pp_nom mais bien **ppp_nom j'ai commis une erreur en recopiant le code. Donc avec **ppp_nom ca ne marche pas....

Yf
0