Почему я получаю предупреждение каждый раз, когда я использовать malloc?
если я использую malloc
в мой код:
int *x = malloc(sizeof(int));
Я получаю это предупреждение от gcc
:
new.c:7: warning: implicit declaration of function ‘malloc’
new.c:7: warning: incompatible implicit declaration of built-in function ‘malloc’
4 ответа:
нужно добавить:
#include <stdlib.h>
этот файл содержит объявление для встроенная функция
malloc
. Если вы этого не сделаете, компилятор подумает, что вы хотите определить свою собственную функцию с именемmalloc
и он предупреждает вас, потому что:
- вы явно не объявите его и
- уже есть встроенная функция с этим именем, которая имеет другую подпись, чем та, которая была неявно объявлена (когда объявлена функция неявно предполагается, что его возвращаемый и аргументированный типы
int
, который не совместим со встроеннымmalloc
, которую занимаетsize_t
и возвращает avoid*
).