0

[変更] 非常に奇妙なバグがありました。std::string を使用する関数を呼び出すと、デバッガーがクラッシュしていました。これは私のコードのエラーだと思いましたが、最初は std::strings で何かをしなければならないことに気づきませんでした。とにかく、この小さなテストファイルをコンパイルすると、KDevelop で何かをしなければならないことがわかりました。

#include <iostream>
#include <vector>
#include <string>

int main(int argc, char **argv) {
    std::cout << "Hello, world!" << std::endl;

    std::string test = "test test";
    std::cout << test;
    return 0;
}

「test test」と表示されますが、デバッグしようとすると、 main() の呼び出しでもクラッシュします。とにかく、バックエンドとしても GDB を使用する nemivar を使用してプロジェクトをデバッグできますが、エラーは発生しません。

だから、これはもう私にとって問題ではなく、これは削除される可能性があります.

4

1 に答える 1

1

search_str_in_vector()関数で、end()許可されていないイテレータを逆参照すると、未定義の動作が発生します。for ループもベクトルよりも 1 要素大きくなっています (vector.size()-1代わりに from から開始します)。

于 2012-03-21T12:08:30.910 に答える