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 :

error: incompatible types when assigning to type ‘double’ from type ‘void *’


Sujet :

C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5
    Par défaut error: incompatible types when assigning to type ‘double’ from type ‘void *’
    Bonjour,
    voila j'ai un probleme de compilation que je ne comprends pas .
    donc voici mes erreurs :

    main.c: In function ‘main’:
    main.c:19: error: void value not ignored as it ought to be
    detruire.c: In function ‘detruire’:
    detruire.c:10: error: incompatible types when assigning to type ‘double’ from type ‘void *’
    detruire.c:11: error: incompatible types when assigning to type ‘char[15]’ from type ‘void *’
    detruire.c:12: error: incompatible types when assigning to type ‘double’ from type ‘void *’
    detruire.c:14: warning: ‘return’ with a value, in function returning void


    voici mon main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    #include <stdio.h>
    #include "element.h"
    #include <stdlib.h> 
    main()
    {
      Element *element ;
    int j;
    int x;
    printf("Introduire le nombre d'element :");
    scanf("%d", &x);
     
    element = construire(x);
    ecrire(element,x);
     
     
    printf("\nElement a detruire :");
    scanf("%d", &j);
     
    element = detruire(element,j);
    ecrire(element,j);
     
      return(0) ;
    }
     
     
    #include "element.h"
    #include <stdio.h>
    #include <stdlib.h> 
     
    Element *construire(int x)
    {
     
      Element *elt ;
     
      printf("coucou\n");
     
      elt =(Element *) malloc( x * sizeof(Element));
     int i = 0;
     printf("entrer les informations sur les planetes:\n");
     
        for(i; i < x;i++){
      if (elt) {
    	printf("diametre :");
        scanf("%lf", &(elt[i].diametre)) ;
    	printf("nom :");
        scanf("%s", elt[i].nom) ;
    	printf("Distance:");
        scanf("%lf", &(elt[i].distance)) ;
      }
    }
      return(elt) ;
    }
    et voici la definition de ma structure .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    struct planete {
      double diametre ;
      char nom[15] ;
      double distance ;
    } ;
     
    typedef struct planete Element ;
     
    Element *construire(int x);
    void ecrire(Element element[], int x);
    Element *detruire(Element element[],int x);
    voici le code pour detruire une structure dans un tableau de structure .


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #include "element.h"
    #include <stdio.h>
    #include <stdlib.h> 
     
    Element *detruire(Element element[],int x)
    {
     
      printf("au revoir\n");
     
        element[x].diametre = NULL;
        element[x].nom = NULL;
        element[x].distance = NULL;
     
      return(element) ;
    }
    ps : je debute en c
    merci de m'aider

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    detruire.c: In function ‘detruire’:
    detruire.c:10: error: incompatible types when assigning to type ‘double’ from type ‘void *’
    detruire.c:11: error: incompatible types when assigning to type ‘char[15]’ from type ‘void *’
    detruire.c:12: error: incompatible types when assigning to type ‘double’ from type ‘void *’
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        element[x].diametre = NULL;
        element[x].nom = NULL;
        element[x].distance = NULL;
    - NULL est un void * (une adresse) et element[x].diametre ainsi que element[x].distance sont des double. Ecrire plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    element[x].diametre = 0.0;
    element[x].distance = 0.0;
    element[x].nom est un tableau, il est interdit d'écrire tableau = quelque chose. Si il s'agit de mettre une chaine vide dans ce champ, écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    element[x].nom[0] = 0 ;// ou = '\0';
    Pour les autres erreurs signalées, je ne vois pas du tout, dans le code posté, leur origine.

  3. #3
    Membre Expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Par défaut
    Bonjour,

    Est-ce que cela ne provient pas du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    return (0);
    return 0; doit suffire

    Il n'y a pas besoin des parenthèses?
    Est-ce que cela peut poser un problème?

    Cordialement,
    Christophe

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Bonjour,

    Est-ce que cela ne provient pas du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    return (0);
    return 0; doit suffire
    Non, cela n'a rien à voir.


    Il n'y a pas besoin des parenthèses?
    Les parenthèses sont inutiles, return n'est pas une fonction.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5
    Par défaut
    mercidiogene ca na marche pas encore comme je le souhaite mais il y a du progres. ^^
    cordialement

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

Discussions similaires

  1. error: incompatible types when assigning
    Par quentinb56 dans le forum C
    Réponses: 2
    Dernier message: 05/12/2013, 21h31
  2. error: incompatible types in assignment
    Par Ganondorf dans le forum Débuter
    Réponses: 6
    Dernier message: 16/09/2010, 17h04
  3. error: incompatible types in assignement
    Par Melwen dans le forum Débuter
    Réponses: 3
    Dernier message: 02/05/2010, 21h34
  4. error: incompatible types in assignment
    Par panda31 dans le forum C
    Réponses: 2
    Dernier message: 13/06/2006, 11h46
  5. Réponses: 4
    Dernier message: 05/12/2005, 20h24

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