Search code examples
c++windowsmemorymemory-managementbstr

Freeing up _bstr_t which is created from char*


I have char* array and I am dynamically allocating memory for it.

char *strData = new char[length+1];

This char* I am passing to _bstr_t as below,

_bstr_t bstrData = strData;

How to free up the memory allocated for the char* through bstrData ?


Solution

  • _bstr_t manages its own internal buffer (created by SysAllocString). So once you create the _bstr_t, it's safe to delete the char array you've allocated. bstrData will still be absolutely useful.