Освобождение массива c-строк


Здесь у меня есть массив динамически выделяемых c-строк.

  • Как правильно освободить такой массив?

  • Необходимо индивидуально освободить каждый элемент A, как код ниже?

Спасибо.

#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;
}
1 3

1 ответ:

Да. Все в порядке, пока каждый new ...[] совпадает с delete[] ....