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 :

une Structure nulle


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Points : 174
    Points
    174
    Par défaut une Structure nulle
    Bonjour,
    j'ai déclaré une structure Personne,
    Dans le main, et selon un test, je veux affecter la structure à null: mais j'ai eu l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    error C2679: '=' binaire*: aucun opérateur trouvé qui accepte un opérande de partie droite de type 'int' (ou il n'existe pas de conversion acceptable)
    1>        .\Exp.cpp(59): peut être 'Personne &Personne::operator =(const Personne &)'
    1>        lors de la tentative de mise en correspondance de la liste des arguments '(Personne, int)'
    alors comment je peut affecté la structure à NULL
    Merci

  2. #2
    Expert confirmé Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 364
    Points : 5 378
    Points
    5 378
    Par défaut
    Tu ne peux pas faire ça !!
    Si tu veux tout mettre à 0 dans ta structure, en C, c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    memset(&prsonne, 0, sizeof(Personne));
    En C++, tu fais une classe Personne et tu redéfinis l'opérateur "égal".

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 254
    Points : 538
    Points
    538
    Par défaut
    Seul les pointeurs peuvent être mis à NULL. Si tu veux mettre ta struct à NULL. il faut que tu déclare un pointeurs sur cette struct.
    "L'insanité consiste à répéter la même action dans l'espoir d'aboutir à un résultat différent" Albert Einstein
    ----------------------
    T.O.A.O 6-MarViN

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 704
    Points
    2 704
    Par défaut
    NULL n'existe pas en C++.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 254
    Points : 538
    Points
    538
    Par défaut
    Citation Envoyé par oodini Voir le message
    NULL n'existe pas en C++.
    En fait il existe en incluant cstdlib. C'est un élément du C qui a été porté en C++ avec la libc. Les pointeurs en C++ se comporte exactement de la même façon que les pointeurs en C, ce qui veut donc dire qu'ils peuvent être NULL.
    "L'insanité consiste à répéter la même action dans l'espoir d'aboutir à un résultat différent" Albert Einstein
    ----------------------
    T.O.A.O 6-MarViN

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Citation Envoyé par 6-MarViN Voir le message
    En fait il existe en incluant cstdlib. C'est un élément du C qui a été porté en C++ avec la libc. Les pointeurs en C++ se comporte exactement de la même façon que les pointeurs en C, ce qui veut donc dire qu'ils peuvent être NULL.
    NULL est plutôt dans <ctsddef>, pour le coup cf. 18.1 du standard de 98. Pour C++11, la question ne se pose plus de la même manière, puisque NULL existera toujours en plus de nullptr, qui est du type nullptr_t.

    Pour résumer, si, NULL existe en C++, et c'est la macro définie par l'implémentation du pointeur null constant (18.1§4).

    OK, c'est plus facile avec la norme sous la main
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  7. #7
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Points : 174
    Points
    174
    Par défaut
    merci
    6-MarViN, j'ai suivi ta proposition

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

Discussions similaires

  1. Tester si une structure(type) n'est pas null
    Par draco951 dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 20/10/2012, 15h38
  2. Test si une structure in_addr vaut NULL
    Par elbarjo dans le forum Linux
    Réponses: 2
    Dernier message: 11/02/2009, 19h39
  3. [toFAQ][socket] Envoi d'une structure
    Par julien20vt dans le forum C++
    Réponses: 15
    Dernier message: 23/04/2003, 15h47
  4. "ALTERER" une col. NULL en NOT NULL - Int
    Par Gandalf24 dans le forum SQL
    Réponses: 2
    Dernier message: 28/12/2002, 00h07
  5. longueur d'une structure
    Par bohemianvirtual dans le forum C
    Réponses: 6
    Dernier message: 28/05/2002, 18h31

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