Hi,
find grad kein Forum das funzt (cplusplus.de down), deshalb mal hier die Frage:
Habe eine Klasse CCString, deklariere einen Array der Länge 0 (!) dieser Klasse mittels
CCString* list = new CCString[0];
Wie bekomme ich jetzt die Größe des Arrays heraus?
sizeof(list) gibt 4 (logisch, ist ja ein 32-Bit Pointer), sizeof(&list) gibt aber auch 4. Habe auch schon new CCString[99]; list[0] = "abcdef..."; gemacht, es bleibt einfach 4.
sizeof(CCString) ergibt 20.
Jemand ne Ahnung?
Sinn eines Arrays der Länge 0 ist ein Unit-Test für eine andere Funktion, will sehen wie tolerant Funktionen sind, wenn sinnlose aber mögliche Werte ankommen.
find grad kein Forum das funzt (cplusplus.de down), deshalb mal hier die Frage:
Habe eine Klasse CCString, deklariere einen Array der Länge 0 (!) dieser Klasse mittels
CCString* list = new CCString[0];
Wie bekomme ich jetzt die Größe des Arrays heraus?
sizeof(list) gibt 4 (logisch, ist ja ein 32-Bit Pointer), sizeof(&list) gibt aber auch 4. Habe auch schon new CCString[99]; list[0] = "abcdef..."; gemacht, es bleibt einfach 4.
sizeof(CCString) ergibt 20.
Jemand ne Ahnung?
Sinn eines Arrays der Länge 0 ist ein Unit-Test für eine andere Funktion, will sehen wie tolerant Funktionen sind, wenn sinnlose aber mögliche Werte ankommen.
Kommentar