Warum erhalte ich eine Warnung jedes Mal wenn ich malloc verwenden?
Frage
Wenn ich malloc
in meinem Code:
int *x = malloc(sizeof(int));
Ich bekomme diese Warnung von gcc
:
new.c:7: warning: implicit declaration of function ‘malloc’
new.c:7: warning: incompatible implicit declaration of built-in function ‘malloc’
Lösung
Sie müssen hinzufügen:
#include <stdlib.h>
Diese Datei enthält die Deklaration für die eingebaute Funktion malloc
. Wenn Sie das nicht tun, denkt der Compiler Sie Ihre eigene Funktion mit dem Namen malloc
definieren möchten, und es warnt Sie, weil:
- Sie erklären nicht explizit und
- Es ist bereits eine integrierte Funktion mit diesem Namen, die eine andere Signatur als derjenige hat, der implizit deklariert wurde (wenn eine Funktion implizit deklariert wird, seine Rückkehr und Argumenttypen sind davon ausgegangen
int
werden, was nicht kompatibel mit dem eingebauten inmalloc
, die einesize_t
und gibt einevoid*
nimmt).
Andere Tipps
Sie haben nicht getan #include <stdlib.h>
.
Sie müssen die Header-Datei enthalten, die die Funktion erklärt, zum Beispiel:
#include <stdlib.h>
Wenn Sie diese Header-Datei nicht enthalten, wird die Funktion mit dem Compiler nicht bekannt. So ist es sieht es als nicht angemeldeter.
Machen Sie eine Gewohnheit Ihre Funktionen der Suche in der Hilfe auf.
meistes Hilfe für C auf den Unix-Handbuchseite modelliert wird.
Mann malloc
gibt recht brauchbare Ergebnisse.
googeln Mann malloc zeigen Ihnen, was ich meine.
natürlich in Unix Sie auch apropos bekommen für Dinge, die in Zusammenhang stehen.