Domanda

Se uso malloc nel mio codice:

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

Ricevo questo avviso da gcc:

new.c:7: warning: implicit declaration of function ‘malloc’  
new.c:7: warning: incompatible implicit declaration of built-in function ‘malloc’
È stato utile?

Soluzione

Devi aggiungere:

#include <stdlib.h>

Questo file include la dichiarazione per la funzione integrata malloc. Se non lo fai, il compilatore pensa di voler definire la tua funzione denominata int e ti avverte perché:

  1. Non lo dichiari esplicitamente e
  2. Esiste già una funzione incorporata con quel nome che ha una firma diversa da quella dichiarata implicitamente (quando una funzione viene dichiarata implicitamente, si presume che i suoi tipi di ritorno e argomento siano size_t, che non è ' t compatibile con il void* incorporato, che accetta un <=> e restituisce un <=>).

Altri suggerimenti

Non hai fatto #include <stdlib.h>.

È necessario includere il file di intestazione che dichiara la funzione, ad esempio:

#include <stdlib.h>

Se non si include questo file di intestazione, la funzione non è nota al compilatore. Quindi lo vede come non dichiarato.

prendi l'abitudine di cercare le tue funzioni in aiuto.

gran parte dell'aiuto per C è modellato sulle pagine di manuale di unix.

man malloc

fornisce risultati piuttosto utili.

googling man malloc ti mostrerà cosa intendo.

ovviamente in unix ottieni anche a proposito di cose che sono correlate.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top