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 égalisation pointeurs


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 39
    Par défaut Problème égalisation pointeurs
    Bonjour,

    Bon je débute en programmation, donc soyez compréhensif svp ^^
    Mon problème est simple et pourtant je n'arrive pas à le régler.

    Voilà mon code :
    char* str1 = (char*) malloc(150);
    char* str2 = (char*) malloc(150);

    ...

    str1 = str2; // (cela) !!!!
    Si je ne dis pas de bêtises, en faisant (cela) je fais pointer str1 et str2 vers le même endroit et donc si je change la valeur de l'un je change irrémédiablement la valeur de l'autre. Cependant, moi j'aimerais réaliser str1=valeur(str2) pour pouvoir changer leurs valeurs séparément plus tard. Comment faire ça ?

    Merci à la bonne âme qui me répondra

  2. #2
    Membre Expert
    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
    Par défaut
    Salut,

    Si je ne dis pas de bêtises, en faisant (cela) je fais pointer str1 et str2 vers le même endroit
    Les deux premières lignes de code permettent de réserver deux tableau de 150 caractères chacun (si la fonction n'échoue pas), chacun d'eux pointant vers une zone de mémoire différente. Les deux pointeurs pointent respectivement vers leur zone de mémoire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str1 = str2; // (cela) !!!!
    Là, tu provoques une fuite de mémoire. A ne jamais faire ! La valeur d'origine de str1 est définitivement perdue. Le premier tableau (qui ne pourra plus être libéré) est donc perdu lui aussi.

    moi j'aimerais réaliser str1=valeur(str2) pour pouvoir changer leurs valeurs séparément plus tard.
    Je n'ai pas compris ta question. Essaye de mieux expliquer.

  3. #3
    Membre émérite Avatar de Steph_ng8
    Homme Profil pro
    Doctorant en Informatique
    Inscrit en
    Septembre 2010
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 677
    Par défaut
    Bonjour,
    Si j'ai bien compris, tu veux copier le contenu d'une des chaînes dans l'autre.
    Je sens que la fonction « strcpy() » (voire « strncpy() ») va devenir ta nouvelle meilleure amie !

    Bien sûr, le contenu de la chaîne de destination est irrémédiablement perdu.
    Sauf s'il a été préalablement sauvegardé.

    Ces deux sites (en anglais) proposent une référence des bibliothèques C standards :
    www.cppreference.com
    www.cplusplus.com

    Bonne continuation !

  4. #4
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 39
    Par défaut
    jeroman :

    Merci.
    Ce que je voulais faire c'était copier le contenu d'une des chaines dans l'autre tout simplement et la fonction strcpy dont Steph_ng8 a parlé est bien ce que je cherchais ^^.

    Steph_ng8 :

    Merci
    C'est nickel. Effectivement, je ne connaissais pas cette fonction. Impeccable !

+ 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