Speicherplatz global reservieren?!

OP #5131491
Lesenswert?

Hallo.
Wollte gerne Speicherplatz für eine uint8_t Variable global reservieren.
Sobald ist dies tue, sagt der Compiler folgendes
1
Fehler    initializer element is not constant
1
uint8_t *buff = (uint8_t *) calloc(11,sizeof(int));
So versuche ich den Speicherplatz zu reservieren. Ist das falsch? In der 
main() klappt es jedoch.
#5131496
Lesenswert?

Jan H. schrieb:
> Hallo.
> Wollte gerne Speicherplatz für eine uint8_t Variable global reservieren.
> Sobald ist dies tue, sagt der Compiler folgendes
> Fehler    initializer element is not constant
> uint8_t *buff = (uint8_t *) calloc(11,sizeof(int));

Die Meldung sagt eigentlich recht klar, was das Problem ist. In C können 
Funktionen nicht vor main() ausgeführt werden. Deshalb können globale 
Variablen ausschließlich mit Konstanten initialisiert werden.
#5131514
Lesenswert?

@ Jan
Abgesehen davon, dass an der angegebenen Stelle keine Funktionen 
ausgeführt werden können: Was soll das Ganze überhaupt?
Du redest von Global, benutzt eine Funktion um immer den gleichen 
Speicher (Größe) zu reservieren.
Oder willst Du unbedingt den Code aufblähen oder das Programm 
komplizierter gestalten?
Beitrag #5132409 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren