-3

g++ で多くのプログラムをコンパイルした後、突然endl;奇妙な動作を示します。改行に加えて、16 進数のコンソール出力も取得します。おそらくメモリ リークの問題があると考えて、Windows 上の VMWare 内で実行されている Linux Mint Debian Edition (最新) を再起動しました。問題が解決しない。以下は、私の g++ バージョン (以前の通常の出力から変更されていません) と、それより下の出力を含むテスト プログラムです。

g++ バージョン (Debian 4.8.2-1) 4.8.2

void my_test_function(void)
{
  // cout << "my_test_function is working" << cout << endl;
  cout << "my_test_function is working\n" << cout << endl;
}

テスト出力:

my_test_function is working 0x600ea8
4

3 に答える 3

1

固定コード:

cout << "my_test_function is working" << endl;

std::coutostream のオブジェクトです。operator<<ostream の署名と の定義を調べる必要がありstd::coutます。

于 2014-07-23T03:43:57.567 に答える