Несовместимое неявное объявление встроенной функции «malloc» - PullRequest
139 голосов
/ 13 августа 2011

Я получаю эту ошибку:

предупреждение: несовместимое неявное объявление встроенной функции 'malloc'

Я пытаюсь сделать это:

fileinfo_list* tempList = malloc(sizeof(fileinfo_list));

Просто для справки используется следующая структура:

typedef struct {
    fileinfo** filedata;
    size_t nFiles;
    size_t size;
    size_t fileblock;
} fileinfo_list;

Я не вижу ничего плохого в том, что я сделал.Я просто создаю tempList размером 1 x fileinfo_list.

Ответы [ 5 ]

309 голосов
/ 13 августа 2011

Вы, вероятно, забыли включить <stdlib.h>.

42 голосов
/ 13 августа 2011

Вам нужно #include <stdlib.h>.В противном случае он определяется как int malloc(), что несовместимо со встроенным типом void *malloc(size_t).

15 голосов
/ 13 августа 2011

Тебе не хватает #include <stdlib.h>.

3 голосов
/ 25 июля 2014

Файл stdlib.h содержит информацию заголовка или прототип функций malloc, calloc, realloc и free.

Поэтому, чтобы избежать этого предупреждения в ANSI C, вы должны включить заголовочный файл stdlib.

0 голосов
/ 11 июля 2014

Единственным решением для таких предупреждений является включение в программу stdlib.h.

...