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 :

Probleme de cast


Sujet :

C

Vue hybride

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 23
    Par défaut Probleme de cast
    Bonsoir
    J'ai besoin d'utiliser la fonction atan2, qui prend comme argument des double. J'essaye donc de caster mes int :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int x, y;
    /*Initialisation de ces entiers
    ...
    */
    double dx = (double) x;
    double dy = (double) y;
    double angle = atan2(dy, dx);
    Et la, Bus error!
    Mes variables sont bien initialisées, aucun probleme jusqu'au cast et je ne vois pas pourquoi.
    Please help!

  2. #2
    Membre émérite Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Par défaut
    Je ne vois rien d'anormal dans ce bout de code.
    Le problème vient certainement d'ailleurs. Montres un peu plus de code.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 23
    Par défaut
    ok
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Donnees *d;
    Item co = d->tab[i]; /*le i vient d'une boucle for*/
    Gpl gp = d->g;
    int x = co.pos.x - gp.pos.x;
    int y = co.pos.y - gp.pos.y;
    double dx = (double) x;
    double dy = (double) y;
    double angle = atan2(dy, dx);
    printf("angle : %f \n", angle);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    typedef struct {
    	Gpl g;
    	int Nb;
    	Item tab[];
            /*Item et Gpl sont des structures contenant les coordonnées (pos)
               sous forme de structure */
    } Donnees;
     
    typedef struct {
    	int x;
    	int y;
    } Coordonnees;

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Ben je sais pas si le code est en entier ou pas mais moi deja ya un truc qui me choque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Donnees *d;
    Item co = d->tab[i]; /*le i vient d'une boucle for*/
    Gpl gp = d->g;
    d pointe où ? Alors à moins que y'est du code manquant mais là pour moi je dirais segfault.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 23
    Par défaut
    Je suis allé un peu vite pour poster le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void Deplacer(Donnees *d) {
        Item co = d->tab[i]; /*le i vient d'une boucle for*/
        Gpl gp = d->g;
        int x = co.pos.x - gp.pos.x;
        int y = co.pos.y - gp.pos.y;
        double dx = (double) x;
        double dy = (double) y;
        double angle = atan2(dy, dx);
        printf("angle : %f \n", angle);
    }

  6. #6
    Membre émérite Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Par défaut
    On ne va pas s'en sortir si tu nous montres du code incomplet à chaque fois...

    Fais une version de ton code reduit au strict minimum (et compilable) et tu nous le renvois. OK ?

  7. #7
    Membre émérite Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Par défaut
    Citation Envoyé par toto08
    ok
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Donnees *d;
    Item co = d->tab[i]; /*le i vient d'une boucle for*/
    Gpl gp = d->g;
    int x = co.pos.x - gp.pos.x;
    int y = co.pos.y - gp.pos.y;
    double dx = (double) x;
    double dy = (double) y;
    double angle = atan2(dy, dx);
    printf("angle : %f \n", angle);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    typedef struct {
    	Gpl g;
    	int Nb;
    	Item tab[];
            /*Item et Gpl sont des structures contenant les coordonnées (pos)
               sous forme de structure */
    } Donnees;
     
    typedef struct {
    	int x;
    	int y;
    } Coordonnees;

    Il est initialisé où le pointeur "d" ?

    [EDIT] Grillé par le coureur du ciel [/EDIT]

Discussions similaires

  1. Probleme de cast de string en int
    Par Oberown dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/04/2006, 11h48
  2. Réponses: 12
    Dernier message: 25/07/2005, 14h49
  3. [VB.NET][dataset][datagrid] probleme de Cast
    Par graphicsxp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/05/2005, 14h18
  4. Probleme de cast de parametres
    Par John Fullspeed dans le forum Langage
    Réponses: 3
    Dernier message: 14/10/2004, 08h43
  5. probleme de cast
    Par gaut dans le forum C++
    Réponses: 9
    Dernier message: 06/08/2004, 18h43

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