Pregunta

Si yo uso malloc en mi código:

int *x = malloc(sizeof(int));

Me sale este aviso de gcc:

new.c:7: warning: implicit declaration of function ‘malloc’  
new.c:7: warning: incompatible implicit declaration of built-in function ‘malloc’
¿Fue útil?

Solución

Usted necesita agregar:

#include <stdlib.h>

Este archivo incluye la declaración de la función integrada malloc.Si no lo hace, el compilador cree que usted desea para definir su propia función denominada malloc y se advierte que debido a que:

  1. Usted no declaran explícitamente que y
  2. Ya hay una función incorporada por ese nombre que tiene una firma diferente a la que se ha declarado implícitamente (cuando una función se declara implícitamente, su regreso y tipos de argumento se supone que ser int, que no es compatible con el sistema integrado de malloc, que tiene un size_t y devuelve un void*).

Otros consejos

No has hecho #include <stdlib.h>.

Debe incluir el archivo de encabezado que declara la función, por ejemplo:

#include <stdlib.h>

Si no incluye este archivo de encabezado, el compilador no conoce la función. Entonces lo ve como no declarado.

habitúese a buscar sus funciones en ayuda.

la mayoría de la ayuda para C está modelada en las páginas del manual de Unix.

man malloc

da resultados bastante útiles.

google man malloc te mostrará lo que quiero decir.

por supuesto, en Unix también obtienes propuestas para cosas relacionadas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top