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 :

C->C++ : problème de cast


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    460
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2005
    Messages : 460
    Par défaut C->C++ : problème de cast
    Bonjour, j'ai passé un programme C vers C++ et j'obtient une erreur au niveau de cette ligne :


    pstActe = pvSTS8_malloc( sizeof( T_ActeCTIP ) );
    L'erreur est la suivante :
    error C2440: '=' : cannot convert from 'void *' to 'T_ActeCTIP *'
    Conversion from 'void*' to pointer to non-'void' requires an explicit cast
    J'aimerai savoir vers quel code je dois mettre pour corriger le problème sachant que ma fonction pvSTS8_malloc est la suivante :

    void* pvSTS8_malloc (size_t iTaille)
    {
    void* pvTmp;

    if ((pvTmp = malloc(iTaille)) != NULL)
    {
    memset(pvTmp, 0, iTaille);
    ulG8NbAlloc++;
    }
    else
    ulG8NbAllocErr++;

    return pvTmp;
    }
    merci,

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    un static_cast

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    460
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2005
    Messages : 460
    Par défaut
    pstActe = pvSTS8_malloc( sizeof( T_ActeCTIP ) );
    sachant que :

    T_ActeCTIP* pstActe;
    je peux faire :

    pstActe=(T_ActeCTIP *) pvSTS8_malloc( sizeof( T_ActeCTIP ) ); non ?

  4. #4
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    C'est un cast C.
    En C++,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    static_cast<T_ActeCTIP> ....
    Tout simplement !

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Non, ça, c'est du C
    Un static_cast, c'est ce que tu dois utiliser.

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    460
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2005
    Messages : 460
    Par défaut
    ça ca marche :
    pstActe=(T_ActeCTIP *) pvSTS8_malloc( sizeof( T_ActeCTIP ) ); non ?
    référence : http://www.winprog.org/tutorial/errors.html

    merci ^^

  7. #7
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par FamiDoo
    ça ca marche :


    référence : http://www.winprog.org/tutorial/errors.html

    merci ^^
    Mieux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pstActe=static_cast<T_ActeCTIP *> pvSTS8_malloc( sizeof( T_ActeCTIP ) );
    EN C++

  8. #8
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par FamiDoo
    ça ca marche :


    référence : http://www.winprog.org/tutorial/errors.html

    merci ^^
    Toutes ces histoires de cast sont indiquées dans la FAQ C++

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

Discussions similaires

  1. [CASTS]problème de cast de Time
    Par DeVoN dans le forum Langage
    Réponses: 7
    Dernier message: 22/02/2006, 17h24
  2. [JDBC Driver][JSTL] Problème de cast de données
    Par GyLes dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 27/09/2005, 10h00
  3. problème de cast!
    Par LaseLiep dans le forum Langage
    Réponses: 3
    Dernier message: 03/06/2005, 09h30
  4. Problème de cast/serialization/externalization ?
    Par Linlin dans le forum CORBA
    Réponses: 1
    Dernier message: 06/12/2004, 16h46
  5. [C#] Problème de casting de @IDENTITY
    Par bilb0t dans le forum Accès aux données
    Réponses: 7
    Dernier message: 03/09/2004, 09h42

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