Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Многомерные динамические массивы, Нужна помощь  
:(
    Опции темы
Deliverance
Дата 26.9.2009, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.12.2007
Где: Украина,Донецк

Репутация: нет
Всего: нет



Собственно программа работает,тоько не могу понять удаляются ли все массивы или для этого нужно  что-то ещё?
Код

#include <iostream>
#include <windows.h>
#include <stdio.h>
using namespace std;




void main()
{
    SetConsoleOutputCP(1251);
    
    int ****p=NULL;
    p=new int***[2];
    
    for(int i=0;i<2;i++)
    {
        p[i]=new int**[3];

        for(int j=0;j<3;j++)
        {
            p[i][j]=new int*[4];
            for(int k=0;k<4;k++)
            {
               p[i][j][k]=new int[5];
            }
        }
            
    }

    for(int i=0;i<2;i++)
    {
        for(int j=0;j<3;j++)
        {
            for(int k=0;k<4;k++)
            {
                for(int l=0;l<5;l++)
                {

                   cout <<"p["<<i<<"]["<<j<<"]["<<k<<"]["<<l<<"]=";
                   cin >> p[i][j][k][l];
                }
                 cout <<"\n";
            }
             cout <<"\n";
        }
        cout <<"\n";
    }
    for(int i=0;i<2;i++)
    {
        
        for(int j=0;j<3;j++)
        {
            for(int k=0;k<4;k++)
            {
                for(int l=0;l<5;l++)
                {
                  cout  <<p[i][j][k][l]<<" ";
                }
                 cout <<"\n";
            }
            cout <<"\n";
        }
        cout <<"\n";
    }
   
   for(int i=0;i<2;i++)
    {
     delete[]p[i];
    }
   delete[]p;
   p=NULL;
}


Зарание благодарю.
PM MAIL WWW ICQ Skype   Вверх
zim22
Дата 26.9.2009, 16:09 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Deliverance, подсказка: количество new должно быть равно количеству delete


--------------------
PM MAIL   Вверх
Deliverance
Дата 26.9.2009, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.12.2007
Где: Украина,Донецк

Репутация: нет
Всего: нет



Цитата(zim22 @ 26.9.2009,  16:09)
Deliverance, подсказка: количество new должно быть равно количеству delete


Это как организовать? Добавить пару циклов? Если не трудно пример кода.
PM MAIL WWW ICQ Skype   Вверх
zim22
Дата 26.9.2009, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Deliverance @  26.9.2009,  16:12 Найти цитируемый пост)
Это как организовать?

ручками. написал new - не забудь написать и delete.

вот пример:
Код

int *p = new int(10); // выделил память
delete p; // почистил за собой


Это сообщение отредактировал(а) zim22 - 26.9.2009, 16:21


--------------------
PM MAIL   Вверх
Deliverance
Дата 26.9.2009, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.12.2007
Где: Украина,Донецк

Репутация: нет
Всего: нет



Цитата(zim22 @ 26.9.2009,  16:21)
Цитата(Deliverance @  26.9.2009,  16:12 Найти цитируемый пост)
Это как организовать?

ручками. написал new - не забудь написать и delete.

вот пример:
Код

int *p = new int(10); // выделил память
delete p; // почистил за собой

Я понимаю ,но как это сделать в конкретном примере? На вот такое 
Код

for(int i=0;i<2;i++)
    {
     for(int j=0;j<3;j++) //Это не работает,почему не понятно?
        {
            for(int k=0;k<4;k++)
            {
                delete[]p[k];
            }

            delete[]p[j];
        }
     delete[]p[i];
    }
   delete[]p;
   p=NULL;


Командная строка тупо виснет,а по чему я не могу понять(

Это сообщение отредактировал(а) Deliverance - 26.9.2009, 17:04
PM MAIL WWW ICQ Skype   Вверх
zim22
Дата 26.9.2009, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Deliverance @  26.9.2009,  16:24 Найти цитируемый пост)
Я понимаю ,но как это сделать в конкретном примере? 

Код

#include <iostream>

int main()
{         
  const int dimension = 5;
  int ********p = NULL;
  p = new int*******[dimension]; // выделили (1)

  for (int i = 0; i != dimension; ++i) 
    p[i] = new int******[10]; // выделили (2)

  ////////////////////////////////////

  for (int i = 0; i != dimension; ++i) 
    delete [] p[i]; // удалили (2)

  delete [] p; // удалили (1)

  return 0;
}



--------------------
PM MAIL   Вверх
Deliverance
Дата 26.9.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.12.2007
Где: Украина,Донецк

Репутация: нет
Всего: нет



Не работает,та же самая проблема,а насчёт 
Код

 const int dimension = 5;

... так у меня их не два ,а 4-е и все различной длины

А вот так,
Код

for(int i=0;i<2;i++)
   {
     for(int j=0;j<3;j++)  
        {
          for(int k=0;k<4;k++) 
            {
             delete[]p[i][j][k];
            }
          delete[]p[i][j];
         }
      delete[]p[i];
    }
   delete[]p;

Всё путём!

Спасибо большое!!! smile 

Это сообщение отредактировал(а) Deliverance - 26.9.2009, 17:17
PM MAIL WWW ICQ Skype   Вверх
bsa
Дата 27.9.2009, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Deliverance, используй std::vector и будет тебе счастье.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0503 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.