C: struktur in struktur -> Runtime written Fehl

Hallo,

ich kämpfe zur Zeit mit Folgendem :
Das Case Tool mit dem ich arbeite generiert c Code in den ich ein paar Zeilen einfuegen muss. Folgende Struktur (beispielhaft) wurde
generiert :

struct w
{
struct
{
struct
{
double n[100];
} w__;
} w_;
};
struct w *a;

Wenn ich nun mittels

a->w_.w__.n[1]=99 einen Wert zuweisen will, wird der code zwar anstandlos compiliert, zur Laufzeit bekomme ich aber einen written Fehler.

Woran liegt das ???

Gruss aus Koeln

Michael Kremser

Hallo Michael,

Du hast eine Zeiger auf eine Structur
„struct w *a“ aber keine Variable dieses Types erzeugt, d.h. Du beschreibst einen Speicherplatz, auf den der Zeiger zufällig zeigt.
Mit
struct w *a = new w;
klappt es. Du darfst aber nicht vegessen durch „delete a“ den notwendigen Speicherplatz wieder freizugeben, wenn Du diese Variable nicht mehr benötigst.

Mfg aus Hamburg

Gerhard