Risposte:
Devi aggiungere:
#include <stdlib.h>
Questo file include la dichiarazione per la funzione incorporata malloc
. Se non lo fai, il compilatore pensa che tu voglia definire la tua funzione chiamata malloc
e ti avverte perché:
int
, il che non è compatibile con il in malloc
, che prende a size_t
e restituisce a void*
).Prendi l'abitudine di cercare le tue funzioni in aiuto.
La maggior parte dell'aiuto per C è modellato sulle pagine di manuale di Unix.
Utilizzando:
man malloc
dà risultati piuttosto utili.
Googling man malloc
ti mostrerà cosa intendo.
In unix ottieni anche approcci per le cose che sono correlate.
#include <stdlib.h>
nella sinossi significa che devi scriverla nel tuo programma.
Oltre alle altre risposte molto buone, vorrei fare un piccolo pignolo e coprire qualcosa che non è ancora discusso nelle altre risposte.
Quando sei su Linux, da usare malloc()
nel tuo codice,
Si Non tiratevi realmente necessario #include <stdlib.h>
.
(Sebbene l'uso di stdlib.h
sia molto comune e probabilmente ogni programma non giocattolo dovrebbe includerlo in entrambi i casi perché fornisce una vasta gamma di utili funzioni e macro della libreria standard C)
Potresti anche #include <malloc.h>
invece.
Ma tieni presente che l'uso di malloc.h
è deprecato e rende il tuo codice non portabile. Se vuoi usarlo malloc()
dovresti sempre e sempre (salvo espliciti motivi per fare diversamente) #include <stdlib.h>
.
I motivi per cui sono meglio spiegati nelle risposte a questa domanda: