Respostas:
Você precisa adicionar:
#include <stdlib.h>
Este arquivo inclui a declaração da função embutida malloc
. Se você não fizer isso, o compilador pensa que você deseja definir sua própria função chamada malloc
e avisa porque:
int
, o que não é compatível com o in malloc
, que recebe a size_t
e retorna a void*
).Crie o hábito de procurar suas funções no help.
A maior parte da ajuda para C é modelada nas páginas de manual do Unix.
Usando:
man malloc
dá resultados bastante úteis.
Googling man malloc
vai mostrar o que quero dizer.
No Unix, você também obtém informações sobre coisas relacionadas.
#include <stdlib.h>
na sinopse significa que você deve escrever isso em seu programa.
Além de outras respostas muito boas, eu gostaria de fazer um pequeno detalhamento e cobrir algo que ainda não foi discutido nas outras respostas.
Quando você está no Linux, para usar malloc()
em seu código,
Você realmente não precisa #include <stdlib.h>
.
(Embora o uso de stdlib.h
seja muito comum e provavelmente todo programa que não seja de brinquedo deva incluí-lo de qualquer maneira, porque ele fornece uma ampla gama de funções e macros de biblioteca padrão C úteis)
Você também pode #include <malloc.h>
.
Mas observe que o uso de malloc.h
está obsoleto e torna seu código não portátil. Se você quiser usar, malloc()
deve sempre e sempre (exceto por razões explícitas para fazer o contrário) #include <stdlib.h>
.
As razões por que , são melhor explicados nas respostas a esta pergunta: