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 :

Problème [gros débutant!] avec malloc


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 17
    Par défaut Problème [gros débutant!] avec malloc
    Salut salut,

    Voilà, gros débutant en C, j'ai un soucis avec l'utilisation de malloc: j'avais lu qu'il renvoyait un void* soit "un pointeur sur n'importe quel type".
    Et le tutoriel où j'avais lu ces lignes (et où j'ai à peu près tout appris en matière de C soit dit en passant) présentait l'exemple suivant:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    long* memoireAllouee = NULL;
    memoireAllouee = malloc(sizeof(long));

    Jusque là tout va bien, il me semblait donc qu'il suffisait de définir précédemment le type du pointeur pour y récupérer automatiquement un pointeur correspondant avec malloc.
    OR, lors de ma mise en pratique, ce type d'instruction me renvoie l'erreur de compilation invalid conversion from 'void*' to 'long int*'.
    J'ai contourné le problème en réécrivant le code de la façon suivante (d'après un exemple trouvé sur cette bonne vieille Toile):
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    long* memoireAllouee = NULL;
    memoireAllouee = (long*) malloc(sizeof(long));
    ce qui ne renvoie en tout cas plus d'erreur (en fait je fait un "cast" si j'ai bien compris, convertissant un type en un autre, ici le void* de sortie dans le type long* demandé).

    Le code proposé dans le tutoriel est-il donc faux ou bien (chose la plus probable ) qqchose m'échappe encore?

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonsoir,

    Avec quoi compiles tu ton code ?

    Ce genre de problème apparait quand on veut compiler du code C avec un compilateur C++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 17
    Par défaut
    J'utilise Code::Blocks avec le compilateur gcc (sous windows), ma fois j'ai sélectionné "projet SDL" après "New project...", je sais pas où régler si je veux de la compilation en C ou en C++, mais je vais jeter un œil dans les paramètres pour voir si je peut changer ça!
    Merci!

  4. #4
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par Nival Voir le message
    J'utilise Code::Blocks avec le compilateur gcc (sous windows), ma fois j'ai sélectionné "projet SDL" après "New project...", je sais pas où régler si je veux de la compilation en C ou en C++, mais je vais jeter un œil dans les paramètres pour voir si je peut changer ça!
    Merci!
    L'extension de ton fichier est-elle bien .c (minuscule) et non .C (majuscule) ou .cpp

  5. #5
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par Nival Voir le message
    J'utilise Code::Blocks avec le compilateur gcc (sous windows), ma fois j'ai sélectionné "projet SDL" après "New project...", je sais pas où régler si je veux de la compilation en C ou en C++, mais je vais jeter un œil dans les paramètres pour voir si je peut changer ça!
    Merci!
    Si tu crées un projet SDL via C::B, il te crée automatiquement un fichier main.cpp qui sera compilé à l'aide du compilateur C++. Pour utiliser le compilateur C, tu as deux choix:

    1. Renommer le fichier main.cpp en main.c, puis clique droit sur main.c->Properties->Onglet Advanced->Compiler variable: CC
    2. Effacter main.cpp du projet et créer un nouveau fichier main.c


    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 17
    Par défaut
    Oui c'était bien ça, j'avais dés le départ renommé le main.cpp en .c mais j'avais pas changé la compiler variable qui était effectivement CPP, chose faite maintenant (CC). Merci!!

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/03/2010, 16h14
  2. Problèmes en débutant avec Zend Framework
    Par Greg71 dans le forum MVC
    Réponses: 2
    Dernier message: 14/12/2009, 23h36
  3. Petit problème de débutant avec les tableaux
    Par crazy_zakaria dans le forum Débuter
    Réponses: 10
    Dernier message: 20/11/2009, 10h25
  4. problème de débutant avec la librairie glut sous dev C++
    Par mozillo3625 dans le forum Windows
    Réponses: 0
    Dernier message: 30/11/2007, 22h56
  5. [C#][service windows] problème de débutant avec 1 timer
    Par Nycos62 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/10/2005, 11h22

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