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 :

Questions


Sujet :

C

  1. #1
    Inactif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 72
    Par défaut Questions
    Bonjour,

    je voudrais savoir si par exemple ,j'ai une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int Analyse(char **ligne)
    {
    /*traitement de la ligne */
    /*puis dans le code je mets*/
    **ligne = '\0';
    (*ligne)++;
    /*retour code erreur*/
    }
    Je voudrais savoir si juste après l'appel à la fonction analyse j'utilise
    char **ligne,je voudrais savoir si la ligne débutera ici:
    Merci

  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
    Par défaut
    Oui, mais il faut être sûr que l'adresse ainsi pointée sera valide et pointera elle-même vers une adresse valide puisque c'est un "double pointeur".
    "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
    Inactif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 72
    Par défaut
    Citation Envoyé par Trap D
    Oui, mais il faut être sûr que l'adresse ainsi pointée sera valide
    Dans ma fonction,je vérifie si je ne suis pas pas en fin de chaine avant de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    **ligne ='\0';
    (*ligne)++;
    et pointera elle-même vers une adresse valide puisque c'est un "double pointeur".
    Est ce que tu peux m'expliquer car je n'ai pas compris cette phrase?

  4. #4
    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
    Par défaut
    Lorsque tu déclares char **tab; que déclares-tu ? un pointeur vers un pointeur de chaîne de caractères.
    Première étape : tab est un pointeur, celà veut dire que tab est une variable dont la valeur est une adresse. Cette adresse doit être valide, donc intialisée par un malloc ou être l'adresse d'une autre variable existante.
    deuxième étape : tab est un pointeur initialisé, bien, mais vers quoi un pointeur de chaîne de caractères, c' est-à-dire que la valeur de l'adresse pointée par tab est le début d'une chaîne de caractère valide, c'est-à-dire que cette seconde valeur pointée doit avoir été initialisée soit par un malloc soit en donnant l'adresse d'une chaîne de caractères existante, (de plus si elle a été initialisée par un malloc, comme c'est une chaîne de caractères, il faut qu'il y ait un zéro terminal quelque part dans la zone réservée).
    j'espère avoir été clair
    "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

  5. #5
    Inactif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 72
    Par défaut
    Citation Envoyé par Trap D
    Lorsque tu déclares char **tab; que déclares-tu ? un pointeur vers un pointeur de chaîne de caractères.
    Première étape : tab est un pointeur, celà veut dire que tab est une variable dont la valeur est une adresse. Cette adresse doit être valide, donc intialisée par un malloc ou être l'adresse d'une autre variable existante.
    deuxième étape : tab est un pointeur initialisé, bien, mais vers quoi un pointeur de chaîne de caractères, c' est-à-dire que la valeur de l'adresse pointée par tab est le début d'une chaîne de caractère valide, c'est-à-dire que cette seconde valeur pointée doit avoir été initialisée soit par un malloc soit en donnant l'adresse d'une chaîne de caractères existante, (de plus si elle a été initialisée par un malloc, comme c'est une chaîne de caractères, il faut qu'il y ait un zéro terminal quelque part dans la zone réservée).
    j'espère avoir été clair
    Merci

  6. #6
    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
    Par défaut
    j'ai oublié de dire que lorsque tu fais *(ligne)++ tu incrémente le "premier pointeur", c'est -à-dire que le premier pointeur devra pointer vers une nouvelle adresse de chaîne de caractères.
    "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

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  2. Divers questions
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 06/08/2002, 21h57
  3. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11
  4. Question de faisabilité
    Par lisarasu dans le forum CORBA
    Réponses: 3
    Dernier message: 14/05/2002, 11h26
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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