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 :

Modification d'un tableau en paramètre


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Modification d'un tableau en paramètre
    Bonjour je suis débutant en C et j'ai un problème...

    J'ai un tableau de chaîne de caractère et je le modifie dans une fonction, cependant lorsque je reviens dans mon main et que j'affiche il n'y a rien... voici mon code

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    int main( void )
    {
     
    	char *definitions[100];
     
            ...
     
    	lireGroupe(nomFichierGroupe, definitions);
     
    	printf("%s \n", definitions[0]);
    	printf("%s \n", definitions[1]);
    	printf("%s \n", definitions[2]);
    	printf("%s \n", definitions[3]);
     
    	return 0;
    }
     
     
    void lireGroupe(char *nomFichier, char *tabDef[])
    {
    	char lecture;
    	char tempIdGroupe;
    	char chaine[100] = "";
    	int i = 0;
    ...
     
    		tempIdGroupe = chaine[0];
    		fgets(chaine, 100, fichierGroupe);
    		while( chaine[0] != '}')
    		{
    			tabDef[i] = chaine;
    			printf("%s", tabDef[i]);
    			i++;
    			fgets(chaine, 100, fichierGroupe);
     
    		}
     
     
    ...
     
    	return;
    }


    Lorsque je l'affiche dans la fonction, tout fonctionne comme prévu, c'est l'affichage du main qui pose problème

    Merci d'avance pour votre aide

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Points : 1 750
    Points
    1 750
    Par défaut
    Que veux-tu faire exactement ici ?
    "chaine" est un tableau local à ta fonction. Tu donnes aux éléments de "definitions" son adresse. Il n'y a aucune copie effectuée.
    Lorsque tu quittes la fonction, ce tableau est détruit, et tes pointeurs du tableau "definitions" pointent ensuite sur quelque chose qui n'existe plus.

  3. #3
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    oui tu déclares un tableau de char * mais les éléments du tableau ne sont pas allloués avec malloc

Discussions similaires

  1. [VB] Problème de function / sub (tableau comme paramètre)
    Par elhosni dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/05/2006, 20h34
  2. [JpGraph] Passage d'un tableau en paramètre dans une URL pour JPgraph
    Par crazydiver_e2 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 16/01/2006, 16h15
  3. Réponses: 2
    Dernier message: 27/11/2005, 23h36
  4. Passage de tableau en paramètre...
    Par Doomi dans le forum C
    Réponses: 14
    Dernier message: 20/10/2005, 14h08
  5. Réponses: 3
    Dernier message: 24/09/2005, 09h34

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