Sam Shen Sam Shen - 5 days ago 6
C++ Question

Freeing array of c-strings

Here I have an array of dynamically-allocated c-strings.


  • What is the proper way to free such an array?

  • It is necessary to individually free each element of
    A
    , as code below?



Thank you.

#include <string.h>
int main()
{
const char** A = new const char*[3];
A[0] = (const char*)memcpy(new char[5], "str0", 5);
A[1] = (const char*)memcpy(new char[5], "str1", 5);
A[2] = (const char*)memcpy(new char[5], "str2", 5);

// Is this the proper way to free everything?
for (int i = 0; i < 3; ++i)
delete[] A[i];
delete[] A;
}

Answer

Yes. Everything is OK as long as every new ...[] is matched with a delete[] ....

Comments