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 d'affectation de variable


Sujet :

C

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 67
    Points : 55
    Points
    55
    Par défaut Problème d'affectation de variable
    Bonjour,
    Voici le code qui me pose problème.


    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
    #define FONCTION "fiPrintErreur"
    SHORT fiPrintErreur (	PCHAR	pchParametre,
    			PCHAR 	pchLibelleErreur,
    			int 	iCodeAlarme,
    			LONG 	lIdJnTraitementAlarme,
    			BOOL	bSansLog)
    {
    	USHORT		sValRet= XZC_NO_ERROR;
    	XZT_PALARME	xztPalarme;
    	PXZT_PALARME	pxztPalarme = &xztPalarme;
    	char	        pchLigne[XZC_LGREP];
     
    	TRACE (XZE_F,"Debut")
     
    	sprintf(pchLigne,"Parametre : %s, Probleme : %s",pchParametre,pchLibelleErreur);
    	SERROR("", pchLigne)
     
    	if (bSansLog == XZC_FALSE)
    	{
    		fiPrintLog (iModuleADV,pchLigne);
     
    	}
     
    	memset(pxztPalarme,0, sizeof(XZT_PALARME));
    	sprintf(pxztPalarme->xzpxztLibelle[0].chParam,pchParametre);
    	/*STRACE(XZE_F2,"pchLibelleErreur_AVANT",pchLibelleErreur);*/
    	sprintf(pxztPalarme->xzpxztLibelle[1].chParam,pchLibelleErreur);
    	STRACE(XZE_F2,"pchLibelleErreur_APRES",pchLibelleErreur);
    	STRACE(XZE_F2,"PXZT_VALEUR",pxztPalarme->xzpxztLibelle[1].chParam);
    	scPrintAlarme (	iCodeAlarme,
    			lIdJnTraitementAlarme,
    			iModuleADV,
    			pxztPalarme);
     
    	DTRACE (XZE_F,"Fin",sValRet)
    	return (sValRet) ;
    }
    #undef FONCTION

    Le problème est le suivant :
    Mon premier STRACE sur pchlibellValeur me donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Le Seq1 Lettrage est incorrect : %%%%% a la ligne 3
    Mon second STRACE sur pxztPalarme->xzpxztLibelle[1].chParam me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Le Seq1 Lettrage est incorrect : %% 0x1.5252525252525p-49 la lig
    ne 3
    Alor que j'ai fait juste avant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sprintf(pxztPalarme->xzpxztLibelle[1].chParam,pchLibelleErreur);
    Je suis débutant en C, pouvez-vous m'aider à trouver d'où vient cette erreur
    Merci d'avance

  2. #2
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 67
    Points : 55
    Points
    55
    Par défaut
    Je rajout la declaration de XZT_PALARME :

    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
     
    #define XZC_NBMAXPAR	4	/*nombre max de parametre pour une alarme*/
     
    typedef struct
    {
    	CHAR	chParam[XZC_LGREP]; /*libelle associé au parametre*/
    } XZT_LIB_PARAM;
     
     
    typedef struct
    {
          USHORT	usNbPar; 				/*nombre de parametres*/
          XZT_LIB_PARAM	xzpxztLibelle [XZC_NBMAXPAR];	/* Tableau de parametres */
    } XZT_PALARME;
     
    typedef XZT_PALARME * PXZT_PALARME;

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 67
    Points : 55
    Points
    55
    Par défaut
    Mon problème est résolu, je donne la solution si ca peut servir à quelqu'un.
    C'est le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sprintf(pxztPalarme->xzpxztLibelle[1].chParam,pchLibelleErreur);
    qui n'était aps bon.
    En remplacant par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    strcopy(pxztPalarme->xzpxztLibelle[1].chParam,pchLibelleErreur);
    tout rentre dans l'ordre

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: Problème d'affectation de variable
    Citation Envoyé par bob33
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	XZT_PALARME	xztPalarme;
    	PXZT_PALARME	pxztPalarme = &xztPalarme;
    	char	        pchLigne[XZC_LGREP];
    YAVHNS

    (Yet Another Victim of the Hungarian Notation Syndrom...)
    Pas de Wi-Fi à la maison : CPL

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

Discussions similaires

  1. [Batch] problème d'affectation de variable dans boucle imbriquée
    Par fred_04510 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 04/02/2012, 08h30
  2. problème d'affectation de variable
    Par altadeos dans le forum Langage
    Réponses: 2
    Dernier message: 06/07/2007, 15h31
  3. Problème d'affectation de variables
    Par jamescook dans le forum C++Builder
    Réponses: 15
    Dernier message: 21/06/2007, 12h08
  4. [MySQL] Problème d'affectation de variable
    Par Lydie12 dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 12/06/2007, 10h50
  5. Réponses: 4
    Dernier message: 29/08/2006, 16h37

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