Pergunta

Se eu usar malloc no meu código:

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

Eu recebo 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’
Foi útil?

Solução

Você precisa adicionar:

#include <stdlib.h>

Este arquivo inclui a declaração para a malloc função built-in. Se você não fizer isso, o compilador acha que você deseja definir sua própria função chamada malloc e avisa porque:

  1. Você não declará-la e explicitamente
  2. Já existe uma função built-in por esse nome que tem uma assinatura diferente do que aquele que foi declarado implicitamente (quando uma função é declarada implicitamente, seus tipos de retorno e argumentos estão a ser assumida int, o que não é compatível com o built-in malloc, que leva um size_t e retorna um void*).

Outras dicas

Você não fez #include <stdlib.h>.

Você precisa incluir o arquivo de cabeçalho que declara a função, por exemplo:

#include <stdlib.h>

Se você não incluir esse arquivo de cabeçalho, a função não é conhecido para o compilador. Por isso, vê-lo como não declarado.

fazer um hábito de olhar as suas funções em ajuda.

mais ajuda para C é modelado sobre as páginas de manual Unix.

homem malloc

dá resultados bastante úteis.

pesquisando homem malloc irá mostrar-lhe o que quero dizer.

É claro que em unix você começa também a propósito de coisas que estão relacionadas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top