Aide en C :'(

Fermé
alex - 10 juil. 2002 à 11:36
 guyom - 11 juil. 2002 à 09:29
j ai un petit pbe avec malloc!!

j ai une structure:
struct key
{...};

je defini le type key comme etant struct key
typedef struct key key;

j ai 1 var vecteur de 8 key
bob key[8];

je veux allouer a bob[i] la place dont il a besoin
je fais
bob[i]=malloc(sizeof(key));

et la j ai l erreur svte: conversion to non-scalar type requested

voila si vous avez des soluces
merci d avance...
:-)

2 réponses

poupyman Messages postés 62 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 28 mars 2004 15
10 juil. 2002 à 14:17
ben d'abord la déclaration devrait etre de la forme
key bob[8]; puisque key est le nom de ton type

ensuite, bob[i] est déjà une structure key, et donc la mémoire est déjà allouée
de plus, le malloc renvoie un pointeur, donc tu as un probleme de conversion de type (tu essaies d'affecter un pointeur (void *) dans ta structure (de type key) )

de toute façon, supprime le malloc, il ne sert à rien dans ce cas
1
faut caster le retour de la fonction malloc en mettant (key *) devant...
0