valgrind の出力を確認するテスト C++ プログラムを作成しました。コードは
#include <iostream>
void f() {
int *pp = new int(1);
std::cout << "pp is " << *pp << "\n";
}
int main() {
f();
return 0;
}
私が使用したvalgrindコマンドは
valgrind --leak-check=yes ./a.out
Valgrind からの出力は次のとおりです。
==2255== HEAP SUMMARY:
==2255== in use at exit: 4 bytes in 1 blocks
==2255== total heap usage: 1 allocs, 0 frees, 4 bytes allocated
==2255==
==2255== 4 bytes in 1 blocks are definitely lost in loss record 1 of 1
==2255== at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==2255== by 0x400786: f() (in /run/shm/a.out)
==2255== by 0x4007CC: main (in /run/shm/a.out)
==2255==
==2255== LEAK SUMMARY:
==2255== definitely lost: 4 bytes in 1 blocks
==2255== indirectly lost: 0 bytes in 0 blocks
==2255== possibly lost: 0 bytes in 0 blocks
==2255== still reachable: 0 bytes in 0 blocks
==2255== suppressed: 0 bytes in 0 blocks
Ubuntu マシンを使用しています: Linux Sun 3.2.0-27-generic #43-Ubuntu SMP Fri Jul 6 14:25:57 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
gcc バージョン「4.6.3」
「-g -m64」を使用したgccパラメーター
私はそれが8バイトであるべきだと思いますよね?