Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > указатель на указатель указателя


Автор: reddevil 5.9.2005, 00:47
Ура!!! smile началась тема указатели, а я уже месяц как показую преподу указатели в своих прогах.
Так вот он меня и наказал задал сделать трехмерный массив в динамической памяти.

В принципе я это сделал, но не уверен на 100% в освобождении памяти, пробовал проверить бесконечным циклом через деспетчер задач, но при явной утечки памяти в четыре байта за цикл, я не заметил за полчаса никаких признаков этой утечки,только если выделять по 200 и более байт видна утечка памяти. smile
Просмотрите пожалуйста код и ответе есть ли там ошибка в освобождении памяти или нет?
Код

int main()
{
    const int size=4;
    int ***array;
// Выделяю массив из кучи
    array=new int**[size];
    for(int i=0;i<size;i++){
        array[i]=new int*[size];
        for(int n=0;n<size;n++)
            array[i][n]=new int[size];
    }
// Инициализирую массив  
    int z=0;
    for(i=0;i<size;i++){
        for(int n=0;n<size;n++)
            for(int k=0;k<size;k++){
                array[i][n][k]=z;
                z++;
            }
    }
// вывожу массив на консоль
    for(i=0;i<size;i++){
        for(int n=0;n<size;n++){
            for(int k=0;k<size;k++)
                cout<<setw(4)<<array[i][n][k];
            cout<<endl<<endl;
        }
        cout<<endl<<endl;
    }
// и типа здесь удаляю хлам и освобождаю память 
    for(i=0;i<size;i++){
        for(int n=0;n<size;n++)
            delete []array[i][n];
    }
    for(i=0;i<size;i++)
        delete[]array[i];

    return 0;
}


З.Ы: подскажите в какой книге об этом можно поподробней прочитать?

Автор: Mayk 5.9.2005, 06:12
delete[] array забыл smile

Автор: reddevil 5.9.2005, 07:31
Спасибо smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)