我最近升級到GCC 4.4(MinGW的TDM版本)和現在後續的代碼產生這些警告:C++ GCC4.4警告:數組下標是以上數組界限
在成員函數「無效控制檯::打印(常量的std :: string &)':
警告:數組下標是以上數組界限
下面的代碼:
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);
}
}
任何想法?
這是正在做的優化...
而且它似乎是這條線,這是造成它:
boost::split(tokens, newLine, boost::is_any_of("\n"));
是啊,我發現它,它是boost :: is_any_of()的參數,通過將它包裝在一個字符串()構造函數中,警告消失,謝謝大家的幫助:)
boost::split(tokens, newLine, boost::is_any_of(string("\n")));
推測編譯器也給出了錯誤的行號?請通過評論在您的代碼中註明。 – 2009-07-22 22:03:59