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 :

Erreur avec malloc : impossible d'assigner une valeur de type "void *" à une entité de type "int *"


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Erreur avec malloc : impossible d'assigner une valeur de type "void *" à une entité de type "int *"
    Bonsoir à tous.
    J'ai un soucis avec la fonction malloc, quand j'écris mon code je n'arrive pas à compiler. Voici le message d'erreur. SVP besoin d'aide
    <impossible d'assigner une valeur de type "void *" à une entité de type "int *">.
    Voici le code en question, j'ai mis en rouge la ligne qui me tracasse et le fichier .C se trouve en pièce jointe

    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
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
        int taille = 0, i = 0;
        int *tabValeur = NULL; // Ce pointeur va servir de tableau après l'appel du malloc
    
        // On demande la taille du tableau à l'utilisateur
        printf("Quel est la taille du tableau ? ");
        scanf("%d", &taille);
        if (taille > 0) // Il faut qu'il ait au moins un ami (jele plains un peu sinon :p)
        {
           tabValeur= malloc(taille * sizeof(int)); // On alloue de la mémoire pour le tableau
            if (tabValeur == NULL) // On vérifie si l'allocation a marché ou non
            {
                exit(0); // On arrête tout si ça n'a pas marché
            } 
    
            // Stochage des éléments du tableau un à un
            for (i = 0 ; i < taille ; i++)
            {
                printf("Entrer l'element  %d ? ", i + 1);
                scanf("%d", &tabValeur[i]);
            }
    
            //Affichage du tableau
            printf("\n\nVoici votre tableau de valeur :\n");
            for (i = 0 ; i < taille ; i++)
            {
                printf("N° %d = %d\n",i+1, tabValeur[i]);
            }
    
            //libération de la mémoire
            free(tabValeur);
        }
        return 0;
    }
    Fichiers attachés Fichiers attachés
    • Type de fichier : c test.C (1,2 Ko, 39 affichages)

  2. #2
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 606
    Points : 1 523
    Points
    1 523
    Par défaut
    Hello,

    Tu compiles en C++, et pas en C.
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonsoir, je ne pense pas sauf si je me trompe. j'ai téléchargé MinGW et j'ai intallé dans mon PC et depuis je compile en invite de commande avec (voici ma syntaxe : gcc test.C -o prog)

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 480
    Points : 13 677
    Points
    13 677
    Billets dans le blog
    1
    Par défaut
    Cette erreur est typique d'un malloc en C++

    Voir https://stackoverflow.com/a/1546107/12342718 :

    Note the .C - case matters in GCC, .c is a C file whereas .C is a C++ file (if you let the compiler decide what it is compiling that is).
    Traduction rapide = la casse de l'extension compte : avec un c minuscule, c'est du C ; avec un C majuscule, c'est du C++.

    Pour plus de détails : https://gcc.gnu.org/onlinedocs/gcc-4...name-suffix-71

    file.cc
    file.cp
    file.cxx
    file.cpp
    file.CPP
    file.c++
    file.C

    C++ source code which must be preprocessed. Note that in `.cxx', the last two letters must both be literally `x'. Likewise, `.C' refers to a literal capital C
    file.c
    C source code which must be preprocessed.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci Bktero.
    J'ai changé l'extension soit test.C en test.c et ça a compilé. Une fois de plus merci. Je vais consulter la documentation que vous m'avez envoyé

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

Discussions similaires

  1. impossible d'assigner une variable
    Par topazz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/06/2009, 01h37
  2. Réponses: 2
    Dernier message: 24/08/2008, 19h58
  3. Erreur avec : ofstream en paramètre d'une fonction
    Par droledelolo dans le forum C++
    Réponses: 4
    Dernier message: 21/08/2008, 10h04
  4. [Free Pascal] [2.2] Impossible d'assigner une variable de type T à une variable de type T
    Par Hibou57 dans le forum Free Pascal
    Réponses: 3
    Dernier message: 12/10/2007, 13h31

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