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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
#1

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

25.05.2010, 17:53. Просмотров 590. Ответов 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++
Здравствуйте. Есть контейнер QList &lt;Node *&gt; В Node свой QList &lt;Node *&gt;. Строю программное дерево разбора выражение. На небольших...

ошибка с выделением памяти - C++
выдает ошибку в выделении памяти. никто не подскажет почему? если что -задача звучит так примерно вводим веественные числа пока не...

Работа со строками и выделением памяти - C++
Задание написать класс строк (что-то типа String). #define MAX 100 class ascii { private: char* str; int len; ...

Задача на строки с выделением памяти - C++
Добрый вечер, помогите с задачкой Выводит на экран только строки, состоящие из заданного количества слов. Возвращает количество прочих...

Строки с выделением динамической памяти - C++
Привет всем! Помогите решить вот такую задачу: Ввести две строки. Определить совпадение их слов (Первое слово 1 строки сравнить с первым...

Двумерный массив с динамическим выделением памяти - C++
Помогите пожалуйста вставить вот в эту вот задачу динамическое выделение памяти: #include &lt;iostream&gt; using namespace std; ...

Динамическое выделением памяти для массивов - C++
Даны три массива вещественных чисел X(25), B(30), Y(25). Из исходных массивов сформировать массив К, элементы которого равны количеству...

Отличие операции с выделением памяти и без - C++
Всем привет! Не сочтите за глупость, но возник интересный вопрос, над которым давно думаю, а овтета нигде не находил Вот нужно,...

Обращение к структуре в классе с выделением памяти - C++
Добрый день уважаемые форумчане. Столкнулся с такой проблемой. Есть класс: class Components { struct comps{ // -- База компонентов ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru