speicher allokieren

OP #790319
Lesenswert?
• ▲
▼
Hallo,

gibt es eine gute möglichkeit in c speicher während das programm läuft 
zu allokieren?

In meinem Fall besitze ich eine union:
1
union Example {
2

3
  unsigned char  uchar[0]; 
4
  unsigned short  ushort; 
5
  unsigned int  uint[0]; 
6
}; [c/]
7

8
uchar und uint variieren in ihrer Größe zwischen uchar[0] und uchar [20] - bei uint entsprechend. 
9

10
[c]#include <stdlib.h>
11
void *malloc(size_t size);

malloc ist nicht möglich, oder... weil malloc ja auf dem Heap und nicht 
im Stack (wo sich die Variablen befinden) arbeitet.

Gibt es trotzdem eine Alternative zu der Möglichkeit, die Arrays mit 
uint[20] und uchar[20] zu definieren?

Bernd
#790342
Lesenswert?
• ▲
▼
Bernd Schuster wrote:

> Gibt es trotzdem eine Alternative zu der Möglichkeit, die Arrays mit
> uint[20] und uchar[20] zu definieren?

Nein.
Entweder du kennst die Größe zur Compilezeit, dann schreib sie
direkt hin.
Oder du kennst sie nicht, dann musst du mit malloc den benötigten
Speicher reservieren.

Eine Alternative gibt es: Man definiert die Variablen zur Compilezeit
in der maximal zulässigen Größe und verwendet dann einen Teil
ganz einfach nicht. Bei 20 uint würde ich das so machen.

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