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 :

Conversion void* et double


Sujet :

C

  1. #21
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup à tous,

    je regarderai tous ca lundi car la je suis plus au bureau lol

    merci encore et bon week end

  2. #22
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par EnigmuS
    ah ok merci et pourquoi ca ca marche :

    tabgen[i]= (long *)(atol(tabE[i]));

    et pas ca :

    tabgen[i]= (double *)(atof(tabE[i]));

    avec tabgen[i] de type void **
    Tu as vu une adresse quelque part ?

    Arrête de faire n'importe quoi et réfléchi...

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 13
    Points
    13
    Par défaut
    Le problème n'est pas qu'il y ai une adresse quelque part mais de caster le type void en int/long/double en filoutant (cast de void * et long * etc...) je sais que c'est trés moche Emmanuel pas besoin d'enfoncer le clous lool

    alors si tu sais contourner ce type d'écriture en C je t'en prie mais j'ai vraiment besoin d'avoir le type réel dans ce tableau car sinon dans mon asm il considére ca comme un pointeur et me fait un General Protection fault alors qu'avec tabgen[i]= (long *)(atol(tabE[i])); il m'affiche le bon résultat.

    J'aimerais contourner ca et apparemment c'est possible en C99 mais y aurait-il moyen d'avoir plus d'explication sur intptr_t, j'ai cherché d'autre example mais j'avoue ne pas bien comprendre. intptr_t est un entier signé pouvant stocker un pointeur mais j'arrive pas a voir ou ca empeche de faire ce qui a plus haut arf

    Merci d'avance.

  4. #24
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par EnigmuS
    alors si tu sais contourner ce type d'écriture en C je t'en prie mais j'ai vraiment besoin d'avoir le type réel dans ce tableau
    Un type void* est un pointeur sur n'importe quel objet. Ce n'est pas un objet qui peut contenir n'importe quoi.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
       void *p = malloc (sizeof (double));
       double *pd = p;
     
       *pd = 12.34;
     
        ...
     
        free (p), p = NULL, pd = NULL;
    est correct mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       void *p = (void*) 12.34;
    est non seulement faux (comportement indéfini), mais totalement illogique.

Discussions similaires

  1. [Conversion]int to double
    Par frouge dans le forum Général Java
    Réponses: 6
    Dernier message: 03/02/2012, 10h34
  2. Conversion de type double en texte
    Par CoachMac dans le forum C
    Réponses: 17
    Dernier message: 14/10/2006, 20h29
  3. [VB.NET]Comment obtenir conversion exacte Single>Double?
    Par Misterburma dans le forum VB.NET
    Réponses: 9
    Dernier message: 09/02/2006, 23h24
  4. Problème conversion float vers double
    Par jhenaff dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/01/2006, 11h39
  5. conversion string en double
    Par zmatz dans le forum SL & STL
    Réponses: 2
    Dernier message: 14/10/2005, 23h46

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