Der folgende Code funktioniert wie zB erwartet, druckt es die Zeichenfolge in umgekehrterC++ String size_t
std::string s("abcd");
for (int i=s.length()-1; i>=0; --i) {
std::cout << s[i];
}
geht jedoch der folgende Code in Endlosschleife Druck Junk-Zeichen und schließlich crashes-
std::string s("abcd");
for (std::size_t i=s.length()-1; i>=0; --i) {
std::cout << s[i];
}
Warum mit size_t
als Typ von i
stürzt das Programm ab?
Am mit g ++ ausgeliefert mit MinGW auf Windows
C:/MinGW/bin/g++ --version
g++ (GCC) 6.1.0
GCC kann immer wahr [warnen] (http://coliru.stacked-crooked.com/a/ce861d53b647251b) Sie dazu: * Warnung : Vergleich von unsigned Ausdruck> = 0 ist immer wahr [-W Type-Grenzen] * – chris