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
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5
    Points : 4
    Points
    4
    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 éminent sénior
    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
    Points : 13 926
    Points
    13 926
    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.
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  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 : 37
    Localisation : France, Haute Loire (Auvergne)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    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
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  4. #4
    Membre chevronné
    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
    Points : 1 750
    Points
    1 750
    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
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5
    Points : 4
    Points
    4
    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, 20h31
  2. error: incompatible types in assignment
    Par Ganondorf dans le forum Débuter
    Réponses: 6
    Dernier message: 16/09/2010, 16h04
  3. error: incompatible types in assignement
    Par Melwen dans le forum Débuter
    Réponses: 3
    Dernier message: 02/05/2010, 20h34
  4. error: incompatible types in assignment
    Par panda31 dans le forum C
    Réponses: 2
    Dernier message: 13/06/2006, 10h46
  5. Réponses: 4
    Dernier message: 05/12/2005, 19h24

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