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 :

pointeurs identiques !


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Par défaut pointeurs identiques !
    Bonjour tout le monde.. j'ai un phénomène étrange dans mon code en C++. j 'ai deux opérateurs new successifs qui me créent la même adresse mémoire (en mode débug) :
    I=new int[n];
    J=new int[n];
    Je me retrouve avec I et J identiques. En plus le phénomène n'est pas systématique.
    Quelqu'un aurait-il une idée d'où ça peut venir !?

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Par défaut
    Si 'n' a la même valeur pour les 2 opérateurs je trouverai ca normal

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Julien_C++
    Si 'n' a la même valeur pour les 2 opérateurs je trouverai ca normal
    pas moi, i et j sont supposés etre deux tableaux différents, meme s'ils doivent avoir la meme taille !!

  4. #4
    Membre expérimenté
    Avatar de superspag
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 153
    Par défaut
    bizard en effet

    Comment as tu procédé au test d'egalité des pointeurs I et J ?

    Quelle est la valeur de n à ce moment là ?

    ajoute le test suivant pour voir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(I == J) {
      cout << "WARNING : I == J with n = " << n << " and adr = " << I << endl;
    }
    Est ce que le log apparait durant l'execution ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Par défaut
    J'ai dit une grosse bêtise

    Celà provient peut être de la variable n ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Par défaut
    Comment as tu procédé au test d'egalité des pointeurs I et J ?
    Quelle est la valeur de n à ce moment là ?
    ajoute le test suivant pour voir :
    J'ai vu que les 2 pointeurs étaient identiques dans le debuger VC++. Et ils étaient vraiment identiques car dans la suite du code, ils sont restés totalement les mêmes.
    Dans mon cas la valeur de n etait n=2 !
    C'est la première fois que je vois ça !!!

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 258
    Par défaut
    Cela peut provenir de la valeur de n uniquement si elle est négative. Dans ce cas, le comportement de ton programme est indéfini. Cela peut aussi provenir de n'importe quel autre comportement indéfini ailleurs dans le programme, genre mauvaise désallocation ou accès à un élément inexistant d'un tableau. Les deux lignes que tu viens de montrer ne devraient pas à elles seules avoir un tel comportement.

  8. #8
    Membre expérimenté
    Avatar de superspag
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 153
    Par défaut
    Tu ne peux pas ajouter les 3 lignes de code que j'ai citer ?
    Si le WARNING est logger dans la console, donne nous les éléments... ça pourait nous mettre sur une piste

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Par défaut
    genre mauvaise désallocation ou accès à un élément inexistant d'un tableau
    Oui ça me semble plutôt un truc comme ça, mais je n'arrive pas à trouver d'où cela peut venir.
    Y-a-t-il des outils pour traquer les mauvaises allocations/désallocation mémoire ?
    un 'delete' au lieu d'un 'delete[]' pourrait-il avoir ce genre de conséquence ?
    ou est-ce qu'il y a plus de chance que ça provienne d'un truc du genre
    I[k]=p avec k>taille du tableau ?
    Tu ne peux pas ajouter les 3 lignes de code que j'ai citer
    Oui il me renvoie bien l'adresse et n!

Discussions similaires

  1. Eviter deux nombres identiques dans un tirage aléatoire
    Par moon tiger dans le forum Pascal
    Réponses: 5
    Dernier message: 25/11/2002, 09h57
  2. [Turbo Pascal] Allocation et désallocation de pointeurs dans une fonction
    Par neird dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 17/11/2002, 20h14
  3. balises identiques
    Par Phmichel dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 28/10/2002, 09h18
  4. djgpp et pointeurs far -2
    Par elvivo dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 29/07/2002, 22h43
  5. djgpp et pointeurs far
    Par elvivo dans le forum C
    Réponses: 2
    Dernier message: 13/07/2002, 00h44

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