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 pointeurs


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Verbalinsurection
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 127
    Par défaut Problème de pointeurs
    Salut !
    Et oui encore moi ! Ba ouai j'apprend...

    Voila, j'ai ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int main() {
        char *ucNameFin;
     
        string fileName = recupInfo(&ucNameFin);
     
        cout << *ucNameFin << endl; //Ce cout donne "T"
        return 0;
    }
    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
    string recupInfo(char **ucNameFin) {
        string NomPc;
        char ucName[64] = "", userName[64] = "";
        string constructeur;
        string model;
        string cpu;
        int ram;
        string osVersion;
        string fileName;
     
        {
            DWORD d;
            d = 64;
            GetUserName(userName, &d);
            d = 64;
            GetComputerName(ucName, &d);
            userName[64-1] = '\0';
            ucName[64-1] = '\0';
            *ucNameFin = ucName;
        }
     
        cout << *ucNameFin << endl; //Ce cout donne bien le nom de la machine
     
        [...]
     
        return fileName;
    }
    Voila, je ne comprend pas pourquoi je récupère que la première lettre... Pourtant c'est un pointeur je devrais avoir strictement la même chose...
    Je pense peut être à un problème de déclaration, allocation mémoire...

    Et pis comme d'ab, merci à tous ceux qui répondront ainsi qu'à tous ceux qui se pencheront sur mon problème.

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par Verbalinsurection Voir le message
    Salut !
    Et oui encore moi ! Ba ouai j'apprend...

    Voila, j'ai ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int main() {
        char *ucNameFin;
     
        string fileName = recupInfo(&ucNameFin);
     
        cout << *ucNameFin << endl; //Ce cout donne "T"
        return 0;
    }
    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
    string recupInfo(char **ucNameFin) {
        string NomPc;
        char ucName[64] = "", userName[64] = "";
        string constructeur;
        string model;
        string cpu;
        int ram;
        string osVersion;
        string fileName;
     
        {
            DWORD d;
            d = 64;
            GetUserName(userName, &d);
            d = 64;
            GetComputerName(ucName, &d);
            userName[64-1] = '\0';
            ucName[64-1] = '\0';
            *ucNameFin = ucName;
        }
     
        cout << *ucNameFin << endl; //Ce cout donne bien le nom de la machine
     
        [...]
     
        return fileName;
    }
    Voila, je ne comprend pas pourquoi je récupère que la première lettre... Pourtant c'est un pointeur je devrais avoir strictement la même chose...
    Je pense peut être à un problème de déclaration, allocation mémoire...

    Et pis comme d'ab, merci à tous ceux qui répondront ainsi qu'à tous ceux qui se pencheront sur mon problème.
    Ta fonction recupInfo() returne fileName qui est un std::string.
    Ta variable ucName est une variable locale à ta fonction. Cette variable n'existe plus lorque tu quitte ta fonction. C'est pourquoi tu affiches n'importe quoi et pas ce que tu veux (tu as même de la chance de ne pas planter)

    Dans ton cas, une solution serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        string ucNameFin;
        string fileName = recupInfo(&ucNameFin);
    ta fonction recupInfo modifiée en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    string recupInfo(string & ucNameFin)
    {
       ...
        ucNameFin=ucName;
       ...
    }
    Raymond
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre confirmé Avatar de Verbalinsurection
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 127
    Par défaut
    Eu...ça compile pas... :
    invalid initialization of non-const reference of type 'std::string&' from a temporary of type 'std::string*'

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par Verbalinsurection Voir le message
    Eu...ça compile pas... :

    oups !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string fileName = recupInfo(ucNameFin);
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre confirmé Avatar de Verbalinsurection
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 127
    Par défaut
    Arf, GENIAL !!!!
    Merci à toi ram_0000 et à bientot !

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

Discussions similaires

  1. Problème de pointeurs..embrouillé
    Par Frenchy dans le forum C++
    Réponses: 11
    Dernier message: 10/03/2005, 16h33
  2. Problème de pointeur avec un TQuery
    Par Oluha dans le forum Bases de données
    Réponses: 3
    Dernier message: 25/01/2005, 13h57
  3. Problème de pointeur
    Par toma_lille dans le forum C++
    Réponses: 1
    Dernier message: 07/12/2004, 21h26
  4. [MFC] Problème de pointeur !!
    Par acastor dans le forum MFC
    Réponses: 7
    Dernier message: 19/03/2004, 15h50
  5. TBitmap et problèmes de pointeurs...
    Par benj63 dans le forum C++Builder
    Réponses: 8
    Dernier message: 28/07/2003, 13h39

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