Garantiert der Standard für Defaultwert von bool
-
Also mit anderen Worten: Kann ich davon ausgehen, dass uninitialisierte bools immer fals sind?
-
Grammy schrieb:
Also mit anderen Worten: Kann ich davon ausgehen, dass uninitialisierte bools immer fals sind?
Nö. Zumindest nicht für lokale Variablen. Globale und statische bool-Variablen werden natürlich Zero-Initialisiert, sie sind also in der Tat immer false.
-
Danke, also initialisiere ich selber
-
btw, ist es sinnvoll bei normalen arrays mit fixer größe memset zu nehmen und in welchem header ist das standardmäßig? cmemory gibt es ja meines wisses nicht...
-
ok, korrigiert
-
Grammy schrieb:
btw, ist es sinnvoll bei normalen arrays mit fixer größe memset zu nehmen
Nein, eigentlich nicht.
ein
char a[100]={0};
reicht
-
Shade Of Mine schrieb:
Grammy schrieb:
btw, ist es sinnvoll bei normalen arrays mit fixer größe memset zu nehmen
Nein, eigentlich nicht.
ein
char a[100]={0};
reichtSchon klar, nur wie initialisiere ich ein member-Array in der Konstruktorinitialisierungsliste?
-
Geht nicht. Zumindest der MSVC optimiert das hier aber AFAIK auch zu memset:
#include <algorithm> std::fill(meinArray, meinArray + laenge, 0);
-
Was ich sagen wollte:
bool wird mit dem initialisiert, was gerade im Speicher ist und da nur 0 == false ist es sehr unwahrscheinlich, dass man gerade false erwischt, aber 100% sicher ist es halt nicht.