IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Probleme retour d'un tableau a l'exterieur d'une f°


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 48
    Points : 16
    Points
    16
    Par défaut Probleme retour d'un tableau a l'exterieur d'une f°
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    void parcours_arbre(char ** tab_code,char *sequence,arbre A)
    {
      if(est_vide(A))
    	{
           tab_code[A->lettre]=sequence;
           printf("%c\n",A->lettre);
           sequence[longueur(sequence)-2] = '\0';       
    	}
    	else
    	{        
    		if(A->gauche)
    		{
            sequence = strcat(sequence,"0");
    	      parcours_arbre(tab_code,sequence,A->gauche);
        }
     
    		if(A->droit)
    		{
            sequence = strcat(sequence,"1");
            parcours_arbre(tab_code,sequence,A->droit);
        }
        sequence[longueur(sequence)-2] = '\0';
      }
    }
    mon pb c'est que je n'arrive pas a acceder a mon tab tab_code a l'exterieur de la fonction.Bon la c normal.Mais j'ai essayé avec des return mais je sais pas trop comment faire a cause de la recursivité.Si vous pouviez m'aider...Si vous savez comment faire pour passer ce tableau par valeur sinon...

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Je ne comprends pas ton problème, qu'essayes-tu de faire exactement ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 48
    Points : 16
    Points
    16
    Par défaut
    ben d'avoir acces au valeurs du tab_code a l'exterieur de la fonction... lors de l'appel de la fonction je passe un tab_code1 en parametre et lorsque je veux reutiliser ce meme tab_code1 (et comme il n'y pas de return entre autre) il n'y pas de valeurs presentes dans le tab ou n'importe quoi...
    en gros :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    char sequence[256];
    sequence[0] = '0';
    char **code_occ;
     
     
    code_occ = malloc(sizeof(sequence)*66);
     
    //Determine les valeurs binaires
    parcours_arbre(code_occ,sequence,A);
     
    //Affichage du resultat
    afficher_arbre(code_occ);
    a l'interieur de parcours_arbre je vais avoir les valeurs de mon tableau mais quand je veux l'utiliser dans afficher_arbre j'ai plus rien ce qui est normal puisque je ne retourne pas mon tableau dans parcours_arbre mais je ne sais comment faire

  4. #4
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Il faut absolument, si tu veux l'utiliser en dehors de ta fonction qu'il soit alloué en dehors de ta fonction.

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 48
    Points : 16
    Points
    16
    Par défaut
    il est alloué en dehors... dans ce tableau je lui passe en indice la valeur ascii d'un lettre (A -> Z ca fait de 65 à 90) et dans la methode afficher
    lorsque que j'essaie de faire tab[65] j'ai des valeurs bizarres aleatoires

  6. #6
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Dans ce cas, est ce que tu es sur que ton remplissage est correct ?

    Est ce que tu es sur aussi que c'est bien la case 65 qu'il faut tester ?

    Parce dis moi si je me trompe mais ton tableau est un tableau de 66 tableaux de 255 caractère.

    tab[65] te renvoie un pointeur vers ton 66 éme tableau (de 255 caractères).

    D'ailleur ça m'étonne que tu n'es pas d'erreur de segmentation ou des warning sur un test avec valgrind par exemple ...

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 48
    Points : 16
    Points
    16
    Par défaut
    Tu n'as pas tort a force de faire des tests j'avais aps vu cette taille surtout qu'en plus mes valeurs vont etre entre tab[65] et tab[90].Deja je vais essayer ca

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 48
    Points : 16
    Points
    16
    Par défaut
    Bon ca y est j'ai résolu mon probleme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    void parcours_arbre(char **tab_code,char *sequence,arbre A)
    {
      if(est_vide(A))
      {
           char * seq_temp = malloc(sizeof(sequence));
           strcpy(seq_temp,sequence);
           tab_code[A->lettre]=seq_temp;
     }
      else
      {        
    		if(A->gauche)
    		{
              sequence = strcat(sequence,"0");
              parcours_arbre(tab_code,sequence,A->gauche);
            }
     
    		if(A->droit)
    		{
              sequence = strcat(sequence,"1");
              parcours_arbre(tab_code,sequence,A->droit);
            }
      }
      sequence[longueur(sequence)-2] = '\0';   
    }
    il fallait remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
           tab_code[A->lettre]=sequence;
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
           char * seq_temp = malloc(sizeof(sequence));
           strcpy(seq_temp,sequence);
           tab_code[A->lettre]=seq_temp;
    et surtout vive les pointeurs!!!

  9. #9
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    et surtout vive les pointeurs!!!
    On a trop souvent l'impression que les développeurs critiquent les langages ou leurs fonctionnalités parce qu'ils ne savent pas comment les utiliser. Le pointeurs sont un formidable outil pour peu qu'on sache comment les utiliser. Ceci est vrai pour tous les langages et toutes les particularité des langages.

  10. #10
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Il ne faudra pas oublier de libérer par des free toutes ces chaînes allouées.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  11. #11
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 48
    Points : 16
    Points
    16
    Par défaut
    Oui c vrai qu'il faut quer je rajoute les free

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Probleme retour @@Identity
    Par superbobo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/07/2006, 12h04
  2. Réponses: 16
    Dernier message: 02/12/2005, 10h39
  3. [Tableau]Problèmes avec copie de tableau
    Par Itachi-san dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 25/11/2005, 17h23
  4. Probleme de hauteur de tableau sous netscape
    Par teshub dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 26/08/2005, 16h00
  5. [langage]Problème de regXp et tableau :)
    Par dirthangel dans le forum Langage
    Réponses: 2
    Dernier message: 29/06/2005, 16h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo