Форум программистов, компьютерный форум CyberForum.ru

Конструктор с выделением памяти - C++

Восстановить пароль Регистрация
 
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
25.05.2010, 17:53     Конструктор с выделением памяти #1
Среди всех данных есть указатель, память для которого выделяется в конструкторе, необходимый размер передается в параметрах конструктора. Так как размер памяти в процессе использования может изменяться, планирую сделать некоторое резервирование, то есть вместо указанного размера (если он слишком мал или равен нулю) применять константные значения. Например так:

Собственно данные:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private: // data
 
   // default size
   static const size_t m_defsize_x = 10;
   static const size_t m_defsize_y = 10;
   static const size_t m_defsize_z = 10;
 
   // current size
   size_t m_size_x;
   size_t m_size_y;
   size_t m_size_z;
 
   // 3d pointer 
   T *** m_ptr;
И конструктор:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
   array3d(uint x = 0, uint y = 0, uint z = 0) : m_size_x(x), m_size_y(y), m_size_z(z)
   {
      if(x < m_defsize_x)
         x = m_defsize_x;
      if(y < m_defsize_y)
         y = m_defsize_y;
      if(z < m_defsize_z)
         z = m_defsize_z;
 
      m_ptr = new T**[x];
      for(uint i = 0; i < x; ++i)
      {
         m_ptr[i] = new T*[y];
 
         for(uint j = 0; j < y; ++j)
            m_ptr[i][j] = new T[z];
      }
   }
Так вот часть с проверкой размеров мне почему-то не нравится, интуитивно чувствую, что данную задумку можно реализовать красивее что ли
Может вообще не такого типа проверку делать, а всегда резервировать большее количество памяти. В общем готов выслушать ваши предложения...

Не по теме:

зы. Естественно задача не боевая, а просто ради интересу и новых знаний.

Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2010, 17:53     Конструктор с выделением памяти
Посмотрите здесь:

C++ ошибка с выделением памяти
C++ Строки с выделением динамической памяти
C++ Двумерный массив с динамическим выделением памяти
Проблема с выделением памяти C++
C++ Обращение к структуре в классе с выделением памяти
Проблемы с выделением памяти C++
C++ Работа со строками и выделением памяти
C++ Задача на строки с выделением памяти

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
30.05.2010, 19:09  [ТС]     Конструктор с выделением памяти #2
И все таки, как обрабатывать ошибки при выделении памяти, ведь std::auto_ptr не может использоваться для массивов.
Yandex
Объявления
30.05.2010, 19:09     Конструктор с выделением памяти
Ответ Создать тему

Метки
выделение, конструктор, память, резервирование
Опции темы

Текущее время: 23:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru