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 :

Soucis avec des pointeurs, des tableaux, des char*


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 1
    Par défaut Soucis avec des pointeurs, des tableaux, des char*
    Bonjour,

    J'ai un soucis avec le code se trouvant ci-dessous.
    En particulier avec la fonction gestionEtiquettes.
    Je passe un tableau de char* en paramètre, ainsi que d'autres char*
    à un moment je souhaite mettre la valeur de etiq dans la case en cours du tableau
    or, ce que je fais c'est que je fais pointer la case de mon tableau à la même case que le char*
    ce qui ne m'arrange pas à dire vrai vu que je veux réutiliser mon tableau et ses nouvelles valeurs hors de ma fonction.
    (sachant que quand je rentre manuellement une chaine de caractère (par exemple : "tata") dans mon tableau avec cette fonction, le tableau garde les valeurs initialisées à "tata" hors de la fonction)
    Comment faire ?

    voilà comment j'appelle ma fonction ainsi que les variables déclarées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    char* etiquettes[512] ;
    char 	ligne[TOKENSIZE], op[TOKENSIZE], etiq[TOKENSIZE], ri[TOKENSIZE], rj[TOKENSIZE], rk[TOKENSIZE], nc[TOKENSIZE];
    int tailleProg ;
     
    gestionEtiquettes(etiquettes, op, ri, rj, rk, nc, &tailleProg, ligne, etiq) ;


    Tokensize correspond à 79 et est déclaré ailleurs
    voici maintenant le code de ma fonction :



    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
    26
    27
    28
    29
    30
    /*
      Compilation:
      + compiler poly_parser.c: gcc -c poly_parser.c
      + compiler assembleur.c: gcc -std=c99 -o assembleur assembleur.c poly_parser.o
     */
     
    #include <stdio.h> // pour manier les fichiers
    #include <string.h> // pour manier les chaines de caractères
    #include "poly_parser.h" // pour utiliser la fonction poly parser
     
    void gestionEtiquettes(char* etiquettes[],char* op,char* ri, char* rj, char* rk, char* nc, int *tailleProg, char* ligne, char* etiq)
    {
        int cpt = 0 ; 
        FILE* fic = fopen("essai.asm","r");
        while(fgets(ligne,79,fic) != NULL)
        {
    	if (poly_parsing(ligne,etiq,op,ri,rj,rk,nc))
    	{
    	    etiquettes[cpt] = etiq ;
    	    printf("nia etiquette : %s \n",etiquettes[cpt]) ;
    	}
     
    	cpt ++ ;
        }
        *tailleProg = cpt ;
        fclose(fic) ;
     
    }
     
    // Je fournirais la suite du code si besoin


    merci d'avance (j'ai eu beau chercher sur google je n'ai rien trouvé ou pas compris ce qui m'était proposé)

  2. #2
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    Tu peux tout simplement utiliser strcpy

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strcpy(etiquettes[cpt], etiq);

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 33
    Par défaut Une remarque
    Bonjour,
    Je me permets de vous faire une petite remarque pratique,quand vous mettez du code dans votre message.
    Pourriez-vous,quand vous mettez du code,passer à la ligne au-delà de la colonne ~60,pour faciliter la lecture et la communication ?(il est plus facile de visualiser le code avec une utilisation du scroll vertical seul).Merci.
    Pour l'indentation,personnellement je considère qu'un programme est lisible avec 2 colonnes d'indentation,bien que les tabulations standard soient plutôt de 3 colonnes.

Discussions similaires

  1. Soucis avec un pointeur de fonction
    Par Masanori dans le forum C++
    Réponses: 2
    Dernier message: 30/03/2009, 11h01
  2. Réponses: 1
    Dernier message: 08/05/2008, 14h28
  3. Réponses: 27
    Dernier message: 24/05/2007, 23h29
  4. souci avec les pointeurs
    Par arlette dans le forum C++
    Réponses: 2
    Dernier message: 15/04/2006, 23h33
  5. souci avec les pointeurs
    Par arlette dans le forum C++
    Réponses: 4
    Dernier message: 15/04/2006, 20h11

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