私たちのコードには、POD(Plain Old Datastructure)構造体が含まれています(これは、最初に初期化する必要がある他の構造体とPOD変数を含む基本的なc ++構造体です)。
私が読んだものに基づいて、それは次のようです:
myStruct = (MyStruct*)calloc(1, sizeof(MyStruct));
次のように、すべての値をゼロに初期化する必要があります。
myStruct = new MyStruct();
ただし、構造体が2番目の方法で初期化されると、Valgrindは後で、これらの変数が使用されたときに「条件付きジャンプまたは移動は初期化されていない値に依存する」と文句を言います。私の理解はここに欠陥がありますか、それともValgrindは誤検知を投げていますか?
new MyStruct()
C ++ 03でパディングバイトを設定する必要がなかったことにも注意してください。C ++ 0xではそうです。C ++ 0xでは、パディングビットはすべて0に設定されます。