Odpowiedzi:
Musisz dodać:
#include <stdlib.h>
Ten plik zawiera deklarację funkcji wbudowanej malloc. Jeśli tego nie zrobisz, kompilator pomyśli, że chcesz zdefiniować własną funkcję o nazwie malloci ostrzega Cię, ponieważ:
int, co nie jest zgodne z wbudowaną in malloc, który przyjmuje a size_ti zwraca a void*).Wyrób sobie nawyk sprawdzania funkcji w pomocy.
Większość pomocy dla C jest wzorowana na stronach podręcznika systemowego unix.
Za pomocą :
man malloc
daje całkiem przydatne wyniki.
Googling man mallocpokaże ci, co mam na myśli.
W unixie otrzymujesz również odpowiednie dla rzeczy, które są ze sobą powiązane.
#include <stdlib.h>w streszczeniu oznacza, że musisz to napisać w swoim programie.
Oprócz innych bardzo dobrych odpowiedzi, chciałbym poszukać czegoś, co nie zostało jeszcze omówione w pozostałych odpowiedziach.
Kiedy jesteś w Linuksie, aby użyć malloc()w swoim kodzie,
Właściwie nie musisz #include <stdlib.h> .
(Chociaż użycie stdlib.hjest bardzo powszechne i prawdopodobnie każdy program inny niż zabawka powinien zawierać go w obu przypadkach, ponieważ zapewnia szeroką gamę przydatnych funkcji i makr w standardowej bibliotece C)
Możesz też #include <malloc.h>zamiast tego.
Pamiętaj jednak, że użycie rozszerzenia malloc.hjest przestarzałe i sprawia, że Twój kod nie jest przenośny. Jeśli chcesz używać malloc(), powinieneś zawsze i zawsze (z wyjątkiem wyraźnych powodów, aby zrobić inaczej) #include <stdlib.h>.
Powody tego najlepiej wyjaśniają odpowiedzi na to pytanie: