Это приводит к утечке памяти: освобождается только память array
, но память, зарезервированная для ячеек, не освобождается до закрытия вашей программы.
Вы должны сопоставить каждый new
с delete
:
for(int i=0; i<3;i++){
delete[] array[i];
}
delete[] array;
Если вы получили указатель от какой-либо функции, вам нужно знать его размер, чтобы можно было освободить всю память.
Чтобы избежать ручной обработки памяти, вы можете использовать векторобщих указателей (std::vector<std::shared_ptr<char>
) или в данном конкретном случае используйте строки (std::vector<std::string>
).