Удаление тройного указателя.

        char ***sim;
    sim = new char**[n];
for (int i = 0; i < n; i++)
    {
        sim[i] = new char*[m];
        for (int j = 0; j < m; j++)
            sim[i][j] = new char[];
    }

Добрый день. Как удалить такую штуку?

Удалять так же, как и создавалось, только в обратном порядке.

Примерно так:

    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
            delete[] sim[i][j];

        delete[] sim[i];
    }
    delete[] sim;

Только у тебя видимо ошибочка: в операторе sim[i][j] = new char[]; выделяется блок памяти нулевой длины.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.