incompatible implicit declaration of built-in function ‘malloc’
-
Morgen,
ich bin es mal wieder
Habe folgendes Problem. Ich deklariere mir folgenden Datentyp:
typedef unsigned int uint32; typedef struct{ uint32 n; uint32* words; } BigInt; BigInt init(uint32 a);
und will folgende Methode benutzen:
BigInt add(const BigInt* a, const BigInt* b){ BigInt s = {1, malloc(4)}; //Berechneung von a+b return s; }
Der Compiler meckert wie in dem Titel. Aber wieso?
malloc reserviert mir doch Speicher in der gewünschten Größe von X Bytes und liefer mir einen Zeiger auf dei Anfangsadresse des freien Speicher zurück. Diesen Zeiger weise ich dann meinem Datentyp BigInt zu. Wo wird denn hier malloc falsch eingesetzt?
Es sind sehr simple Fragen, aber ... ja, kein aber ^^
-
{1, malloc(4)}
Das Programmkonstrukt ist mir neu. Darf in einer Initialisierungsliste eine Funktion aufgerufen werden?
-
#include <stdlib.h>
fehlt.
knivil schrieb:
Darf in einer Initialisierungsliste eine Funktion aufgerufen werden?
Ja, natürlich.
-
Du hast
#include <stdlib.h>
vergessen.
-
Auf sowas muss mann echt kommen, wenn du nur mit höheren Sprachen arbeitest
Nochmals vielen Dank
Ihr seid gut
-
TobiasK schrieb:
Auf sowas muss mann echt kommen, wenn du nur mit höheren Sprachen arbeitest
Nochmals vielen Dank
Ihr seid gut
<ironie>
z.b. ist c# keine höhere sprache und kennt auch keine using anweisung.
</ironie>