Respuestas:
Necesitas agregar:
#include <stdlib.h>
Este archivo incluye la declaración de la función incorporada malloc
. Si no lo hace, el compilador cree que desea definir su propia función nombrada malloc
y le advierte porque:
int
, lo cual no es compatible con la función incorporada in malloc
, que toma size_t
ay devuelve a void*
).Adquiera el hábito de buscar sus funciones como ayuda.
La mayor parte de la ayuda para C se basa en las páginas del manual de Unix.
Utilizando :
man malloc
da resultados bastante útiles.
Buscar en Google man malloc
te mostrará lo que quiero decir.
En Unix también obtienes a propósito para cosas que están relacionadas.
#include <stdlib.h>
en la sinopsis significa que tiene que escribir eso en su programa.
Además de las otras muy buenas respuestas, me gustaría hacer un pequeño detalle y cubrir algo que aún no se discute en las otras respuestas.
Cuando estás en Linux, para usar malloc()
en tu código,
En realidad, no tienes que hacerlo #include <stdlib.h>
.
(Aunque el uso de stdlib.h
es muy común y probablemente todos los programas que no sean de juguete deberían incluirlo de cualquier manera porque proporciona una amplia gama de funciones y macros de biblioteca estándar de C útiles)
También podrías en su #include <malloc.h>
lugar.
Pero tenga en cuenta que el uso de malloc.h
está obsoleto y hace que su código no sea portátil. Si desea utilizar malloc()
, debe hacerlo siempre y siempre (excepto por razones explícitas para hacer lo contrario) #include <stdlib.h>
.
Las razones por las cuales se explican mejor en las respuestas a esta pregunta: