statische variable + sizeof
-
Ich möchte in einer Member Funktion die größe eines statsichen Arrays bestimmen
class Praedikat{ public: bool operator()(void) { int i = sizeof(array); } private: static const char array[]; };Ich bekomme folgenden Fehler:
[C++ Error] Unit1.cpp(18): E2109 Not an allowed typeNormalerweise funktioniert dies doch mir Arrays. Wieso kann die Größe von statischen Arrays so nicht bestimmt werden?
-
das array hat keine grösse. probier mal so:
static const char array[256];
-
Und wenn ich keine feste Größe angeben kann/will???
-
geralyn schrieb:
Und wenn ich keine feste Größe angeben kann/will???
dann haste keinen speicher, musst also new oder malloc() benutzen. sizeof geht dann aber nicht mehr
-
Ok, ich hab den Array jetzt als std::string und nicht mehr const.(Ist nicht so schlimm, ist eh private und die Klasse wird recht klein bleiben)
static std::string arraystring;
-
Denk aber dran, dass sizeof(std::string) jetzt nicht mehr das gesuchte Ergebnis bringt.
MfG SideWinder