Moin.
was macht man aber in C in solchen fällen? arrays variabler-länge lassen sich ja nicht definieren, bzw - ich weiss nciht wie,
was wäre der ansatz?
C99 erlaubt Arrays variabler Länge für Variablen mit automatischer Lebensdauer (d.h. Variablen, die innerhalb von Funktionen ohne den Spezifizierer static
deklariert werden).
Solche Arrays werden auf dem Stack abgelegt und nicht wie bei den genannten Alternativen malloc()
und calloc()
auf dem Heap.
Ein Beispiel:
void foo(size_t n)
{
int bar[n]; // I'm a variable-length array
for(size_t i = 0; i < n; ++i)
{
// do stuff with bar[i]
}
}
Damit der GCC das unterstützt, muss eventuell ein -std=c99
oder -std=gnu99
als Parameter mitgeliefert werden.
Christoph