Recibo este error:
advertencia: declaración implícita incompatible de la función incorporada 'malloc'
Estoy tratando de hacer esto:
fileinfo_list* tempList = malloc(sizeof(fileinfo_list));
Solo para la referencia, la estructura utilizada es:
typedef struct {
fileinfo** filedata;
size_t nFiles;
size_t size;
size_t fileblock;
} fileinfo_list;
No veo nada malo en lo que he hecho. Solo estoy creando una tempList
con el tamaño de 1 x fileinfo_list
.
Respuestas:
Probablemente olvidó incluir
<stdlib.h>
.fuente
<stdlib.h>
la advertencia fue reemplazada por un errorerror: conflicting types for 'malloc'
Usted necesita
#include <stdlib.h>
. De lo contrario, se define comoint malloc()
incompatible con el tipo incorporadovoid *malloc(size_t)
.fuente
int malloc()
, ¿se replicavoid *malloc(size_t)
?int
valores de 32 bits vomitarán heces de cabra, mientras que un puntero de datos de 32 bits x86 / 32 bitsint
aparentemente puede funcionar correctamente. Ninguno de los dos es correcto, ya que en ninguno de los casos el compilador es consciente de lo quemalloc
realmente regresa y asumeint
en respuesta.Que se está perdiendo
#include <stdlib.h>
.fuente
El archivo stdlib.h contiene la información del encabezado o el prototipo de las funciones malloc, calloc, realloc y free.
Entonces, para evitar esta advertencia en ANSI C, debe incluir el archivo de encabezado stdlib.
fuente
La única solución para tales advertencias es incluir stdlib.h en el programa.
fuente