Inkompatible implizite Deklaration der integrierten Funktion „malloc“

Lesezeit: 2 Minuten

Benutzeravatar von SGE
SGE

Ich bekomme diesen Fehler:

Warnung: inkompatible implizite Deklaration der eingebauten Funktion ‘malloc’

Ich versuche dies zu tun:

fileinfo_list* tempList = malloc(sizeof(fileinfo_list));

Nur als Referenz ist die zur Hand verwendete Struktur:

typedef struct {
    fileinfo** filedata;
    size_t nFiles;
    size_t size;
    size_t fileblock;
} fileinfo_list;

Ich sehe nichts Falsches an dem, was ich getan habe. Ich erstelle gerade eine tempList mit der Größe von 1 x fileinfo_list.

  • mögliches Duplikat von Warum erhalte ich jedes Mal eine Warnung, wenn ich malloc verwende?

    – Oded

    1. November 2011 um 14:14 Uhr

Benutzeravatar von cnicutar
Cnicutar

Wahrscheinlich hast du es vergessen #include <stdlib.h>

  • ahh danke 🙂 immer noch den Dreh raus aus C, erstes C-Programm aus Java 🙂

    – SGE

    13. August 2011 um 13:53 Uhr

  • nach dem Einschließen <stdlib.h> die Warnung wurde durch einen Fehler ersetzt error: conflicting types for 'malloc'

    – Christos Karapapas

    5. November 2018 um 20:17 Uhr

Benutzeravatar von Omri Barel
Omri Barel

Du musst #include <stdlib.h>. Ansonsten ist es definiert als int malloc() die mit dem eingebauten Typ nicht kompatibel ist void *malloc(size_t).

  • wenn es definiert ist als int malloc()repliziert es void *malloc(size_t)?

    – Benutzer1343318

    12. März 2014 um 22:19 Uhr


  • @ user1343318 Nicht unbedingt, das ist genau der Grund für die Warnung. Beispiel: eine x64-Plattform mit 64-Bit-Datenzeigern und 32-Bit int Werte kotzen Ziegenkot, während ein x86 32bit-data-pointer/32bit-int kann anscheinend richtig funktionieren. Weder richtig sind, da der Compiler in keinem Fall weiß, was malloc tatsächlich zurückgibt und annimmt int In Beantwortung.

    – WhozCraig

    13. Mai 2015 um 1:54 Uhr

Du fehlst #include <stdlib.h>.

Benutzeravatar von santosh sahu
Santosh Sahu

Die Datei stdlib.h enthält die Header-Informationen oder den Prototyp der Funktionen malloc, calloc, realloc und free.

Um diese Warnung in ANSI C zu vermeiden, sollten Sie also die Header-Datei stdlib einbinden.

Die einzige Lösung für solche Warnungen besteht darin, stdlib.h in das Programm aufzunehmen.

1425160cookie-checkInkompatible implizite Deklaration der integrierten Funktion „malloc“

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy