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 :

Problème de type


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut Problème de type
    Bonsoir,

    Mon problème est le suivant, j'aimerai faire une fonction qui concatène deux liste et je voudrais construire ceci non pas en modifiant l'une des deux listes fournit en paramètre mais en créant une liste vide et en ajoutant un par un les éléments des deux listes à la fin de la liste vide. J'espère avoir été clair

    Voici le 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
    Liste ConcateneListe(Liste L1,Liste L2)
    {
    	Liste CopieDeL1 = L1;
    	Liste CopieDeL2 = L2;
    	Liste ListeResultat;
     
    	if (CopieDeL1 == NULL)
    	{
    		while (CopieDeL2->suiv != NULL)
    		{
    			insererALaFinDeLaListe(&ListeResultat, CopieDeL2->valeur);
    		}
    	}
    	else
    	{
    		ListeResultat = L1;
    		while (CopieDeL2->suiv != NULL)
    		{
    			InsererALaFinDeLaListe(AdresseDernierElement(ListeResultat), CopieDeL2->valeur);
    		}
    	}
    	return ListeResultat;
    }
    Et gcc me donne cette erreur:

    attention : passing argument 1 of ‘InsererALaFinDeLaListe’ from incompatible pointer type
    le prototype de ma fonction "Inserer" est:

    InsererALaFinDeLaListe(Liste *L, int Element)
    Merci de l'aide que vous pourrez m'apporter

  2. #2
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Bonsoir,

    Je débute en C donc... Ne pas tenir rigueur de mon post si c'est une atrocité mais pourquoi
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    insererALaFinDeLaListe(&ListeResultat, CopieDeL2->valeur);

    et pas

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    insererALaFinDeLaListe(ListeResultat, CopieDeL2->valeur);

    si tu mets Liste *ListeResultat;
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut
    Tout simplement parce qu'il faut que je lui donne une adresse pour modifier la cellule à l'adresse donné.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut
    Bon j'ai réussi à trouver le soucis mais le résultat attendu n'est pas tout à fait cela. Voici d'abord le code corrigé:

    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
    Liste ConcateneListe(Liste L1,Liste L2)
    {
    	Liste CopieDeL1 = L1;
    	Liste CopieDeL2 = L2;
    	Liste ListeResultat = NULL;
     
    	if (CopieDeL1 == NULL)
    	{
    		while (CopieDeL2->suiv != NULL)
    		{
    			insererALaFinDeLaListe(&ListeResultat, CopieDeL2->valeur);
                            CopieDeL2 = CopieDeL2->suiv;
    		}
    	}
    	else
    	{
    		ListeResultat = L1;
    		while (CopieDeL2->suiv != NULL)
    		{
    			Liste ListeTemporaire = AdresseDernierElement(ListeResultat);
                            InsererALaFinDeLaListe(&ListeTemporaire, CopieDeL2->valeur);
                            CopieDeL2 = CopieDeL2->suiv;
    		}
    	}
    	return ListeResultat;
    }
    Seulement Lorsque je rentre L1 qui vaut (1,2,3) et L2 qui vaut (4,5,6) cette fonction me retourne (1,2,3,4,5). Et lorsque je rentre L2 vide et bien j'ai une erreur de segmentation.

  5. #5
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while (CopieDeL2->suiv != NULL)
    		{
    			Liste ListeTemporaire = AdresseDernierElement(ListeResultat);
                            InsererALaFinDeLaListe(&ListeTemporaire, CopieDeL2->valeur);
                            CopieDeL2 = CopieDeL2->suiv;
    		}
    4 5 6

    Il va rentrer et te mettre 4 car element comprenant 5 non NULL
    Il va rentrer et te mettre 5 car element comprenant 6 non NULL
    Il ne va pas rentrer dans ta boucle car element suivant 6 = NULL
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut
    En effet bien vue, comment j'ai pu louper ça comme quoi tu ne débute pas totalement en C. Merci beaucoup en tout cas

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

Discussions similaires

  1. [ tinyint et char ] problème de type
    Par shirya dans le forum Installation
    Réponses: 3
    Dernier message: 05/11/2005, 07h08
  2. [debutant] problème avec type à utiliser
    Par mlequim dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 15/07/2005, 16h08
  3. Problème de type chaîne
    Par champijulie dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 12/05/2005, 20h23
  4. Réponses: 4
    Dernier message: 30/01/2005, 14h23
  5. [Sybase] Problème de type sous ASE
    Par Hotchotte dans le forum Sybase
    Réponses: 1
    Dernier message: 18/12/2004, 11h04

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