Аз съм сравнително нов в C++. Разпределям буфер:
uint8 *buffer = new uint8[len];
Използвайки библиотека на трета страна, използвам метод на обект "img" (това е картина), за да "поема" буфера като необработени данни за изображение:
img->SetBuffer((uint8*)data);
Подозирам, че "поемането" на практика означава, че обектът "img" има свой собствен указател, който след "SetBuffer" сочи към данните в "buffer". Всичко работи добре, но моят компилатор се оплаква (това е предупреждение, а не грешка) за изтичане на памет. Ако добавя този ред: "изтриване на буфер;" след SetBuffer, предупреждението изчезва, но в същото време моят "img" остава празен (няма данни). Как да избегна предупреждението на компилатора и да запазя данните? Има ли начин да изтрия само самия указател на "буфера", без да унищожавам данните, към които сочи? По-късно в кода изтривам обекта "img", който, предполагам, така или иначе изтрива всички данни за изображението.
delete[] buffer
. - person fredoverflow   schedule 13.01.2015