Kodumuz bir POD (Düz Eski Veri Yapısı) yapısı içerir (başlangıçta başlatılması gereken diğer yapıları ve POD değişkenlerini içeren temel bir c ++ yapısıdır.)
Ben kadarıyla birini Tabanlı okumak , bu gibi görünüyor:
myStruct = (MyStruct*)calloc(1, sizeof(MyStruct));
aşağıdaki gibi tüm değerleri sıfırlamalıdır:
myStruct = new MyStruct();
Bununla birlikte, yapı ikinci şekilde başlatıldığında, Valgrind daha sonra bu değişkenler kullanıldığında "koşullu sıçrama veya hareket başlatılmamış değer (ler) e bağlıdır" diye şikayet eder. Anlayışım burada kusurlu mu yoksa Valgrind yanlış pozitifler mi veriyor?
new MyStruct()
C ++ 03'te herhangi bir dolgu baytı ayarlamanıza gerek olmadığını unutmayın . C ++ 0x'de öyle. Herhangi bir dolgu biti C ++ 0x'de 0'a ayarlanacaktır.