Я использую функцию TComboBox AddItem()< /code>, чтобы добавить видимый текст и значение указателя в TComboBox. Когда я выхожу из приложения, мой детектор утечки памяти сообщает, что память, выделенная с помощью _wcsdup(), не была освобождена.
Мой код приведен ниже.
Код: Выделить всё
int i=0;
UnicodeString Description;
UnicodeString Symbol;
wchar_t *MyPointerValue;
for(i=0; iCount; i++){
Description = MyStringList1->Strings[i];
Symbol = MyStringList2->Strings[i];
MyPointerValue = _wcsdup(Symbol.c_str());
ComboBox1->AddItem(Description, (TObject *) MyPointerValue );
}
Код: Выделить всё
for(i=0; iCount; i++){
Description = MyStringList1->Strings[i];
Symbol = MyStringList2->Strings[i];
MyPointerValue = _wcsdup(Symbol.c_str());
ComboBox1->AddItem(Description, (TObject *) MyPointerValue );
if(MyPointerValue != NULL){
free(MyPointerValue);
}
}
Код: Выделить всё
for(i=ComboBox1->Items->Count-1; i>-1; i--){
if( ComboBox1->Items->Objects[i] ){
ComboBox1->Items->Objects[i]->Free();
}
}
Примечание: я использую C++ Builder 12.2, обновление 2 с платформой Win64X VCL.
Подробнее здесь: https://stackoverflow.com/questions/793 ... n-cbuilder