2012-12-15 2 views
0

Donc j'obtiens un warning: return makes pointer from integer without a cast en essayant de créer un pointeur vers une structure.Un avertissement: return fait un pointeur à partir d'un entier sans cast en utilisant malloc sizeof struct in C

Struct:

typedef struct _book_ 
{ 
    char *title; 
    char *cat; 
    double price; 
}Book_T; 

code:

Book_T *book; 
... 
if((book = malloc(sizeof(Book_T))) == NULL) return 1; 

Le struct est déclaré dans un fichier .h différent mais je revérifié que je l'a inclus. Je suis un peu perdu sur celui-ci

+4

Quel est le type de données de la fonction dans laquelle vous codez? – shf301

+2

^^ Je soupçonne que la fonction qui est dans est définie pour retourner un 'Book_T *' et que vous avez du code qui retourne '1' (un' int'). –

+0

ohh ouais ... c'est un vide *, c'est définitivement ça, merci. hmmm c'est ma première fois en utilisant pthreads, je suppose que je peux juste retourner NULL, je n'ai pas besoin de fonction de fil spécial –

Répondre

3

Pour répondre à ma propre question avec l'aide de shf301 et Brian, le problème est le type de retour réel et pas n'importe quoi avec malloc(). Le code correct serait quelque chose comme:

if((book = malloc(sizeof(Book_T))) == NULL) return NULL; 
Questions connexes