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’
War es hilfreich?

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:

  1. Sie erklären nicht explizit und
  2. 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 in malloc, die eine size_t und gibt eine void* 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top