ich auf GCC 4.4 kürzlich aktualisiert (MinGW TDM build) und nun die Folge Code erzeugt diese Warnung:C++ GCC4.4 Warnung: Array-Index ist über Feldgrenzen
In Memberfunktion ‚Leere Console :: print (const std :: string &) ':
Warnung: Array-Index ist über Feldgrenzen
Hier ist der Code:
void Console::print(const std::string& str) {
std::string newLine(str);
if(newLine.size() > MAX_LINE_LENGTH) {
sf::Uint32 stringSize = newLine.size();
for(sf::Uint32 insertPos = MAX_LINE_LENGTH;
insertPos < stringSize; insertPos += MAX_LINE_LENGTH) {
newLine.insert(insertPos, "\n");
}
}
StringList tokens;
boost::split(tokens, newLine, boost::is_any_of("\n"));
for(StringList::iterator it = tokens.begin();
it != tokens.end(); ++it) {
addLine(*it);
}
}
Irgendwelche Ideen?
Es sind die Optimierungen, die es tun ...
Auch diese Linie zu sein, scheint es, die es verursacht wird:
boost::split(tokens, newLine, boost::is_any_of("\n"));
Ah ja, ich fand es , es ist das Argument für boost :: is_any_of(), indem es in einen string() - Konstruktor eingepackt wird, verschwindet die Warnung, danke Ihnen allen für Ihre Hilfe :)
boost::split(tokens, newLine, boost::is_any_of(string("\n")));
Vermutlich gab der Compiler auch eine Zeilennummer für den Fehler? Bitte geben Sie dies in Ihrem Code durch einen Kommentar an. –
Aus Neugier, macht es immer noch, wenn Sie 'stringSize' als' const' deklarieren? –
Es gibt nicht die Zeile #, die Warnung, die ich dort postete, ist der genaue Text vom Compiler. – Adam