Я получаю эту ошибку:
предупреждение: несовместимое неявное объявление встроенной функции '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 х fileinfo_list
.
Ответы:
Вы, вероятно, забыли включить
<stdlib.h>
.источник
<stdlib.h>
предупреждение сменилось ошибкойerror: conflicting types for 'malloc'
Тебе нужно
#include <stdlib.h>
. В противном случае он определяется какint malloc()
несовместимый со встроенным типомvoid *malloc(size_t)
.источник
int malloc()
, это копируетvoid *malloc(size_t)
?int
значениями будет вызывать козлиные испражнения, в то время как 32 -битный указатель данных x86 / 32-битныйint
может работать корректно. Ни один из них не является правильным, так как ни в одном из случаев компилятор не знает, что наmalloc
самом деле возвращает, и принимаетint
в ответ.Ты пропал
#include <stdlib.h>
.источник
Файл stdlib.h содержит информацию заголовка или прототип функций malloc, calloc, realloc и free.
Поэтому, чтобы избежать этого предупреждения в ANSI C, вы должны включить заголовочный файл stdlib.
источник
Единственным решением для таких предупреждений является включение в программу stdlib.h.
источник