|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.12.2010, 22:14 | #1 |
Пользователь
Регистрация: 11.07.2010
Сообщений: 29
|
Динамический массив как закрытый член класса
Здравствуйте Господа и Дамы!
У меня задачка: необходимо создать программу, которая создаёт массив объектов. У каждого объекта есть свой массив произвольного размера и содержания. Доступ к этому массиву осуществляется через открытые члены-функции. Вот что я наваял: Код:
Поправьте если я не прав. Функцией "float *mass()" я создаю массив и передаю указатель на него в закрытый "float *mas". Но когда "float *mass()" заканчивает своё выполнение массив уничтожается, а указатель сохранен в "float *mas", который указывает на первый элемент уже несуществующего массива. Так? Но тогда ка же решить эту задачу? |
13.12.2010, 22:22 | #2 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
Код:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
13.12.2010, 22:28 | #3 |
Пользователь
Регистрация: 11.07.2010
Сообщений: 29
|
ммм...
Код:
|
13.12.2010, 22:29 | #4 |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
Да тут помимо потери указателя...
В следующем куске кода вы почему-то переобъявляете свой массив локально. Код:
Код:
Код:
Код:
Код:
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
Последний раз редактировалось ACE Valery; 13.12.2010 в 22:31. |
13.12.2010, 22:44 | #5 |
Пользователь
Регистрация: 11.07.2010
Сообщений: 29
|
2 ACE Valery
Я только начал программировать. Спасибо Вам за помощь! Заработало. Интересно, что вот так: Код:
|
13.12.2010, 22:49 | #6 |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
Что, правда работает? И не вываливается после вывода массива? Странно-странно...
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
|
14.12.2010, 00:03 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
может и не вываливается, но утечки должны быть.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
14.12.2010, 04:09 | #8 |
Пользователь
Регистрация: 11.07.2010
Сообщений: 29
|
В развитии темы:
Код:
|
14.12.2010, 10:55 | #9 |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
Мдяяя... Перечитайте сообщение №4. Вы снова в функции
float **mass(unsigned short a,unsigned short c) объявляете локальную переменную mas, в которую и записываются данные.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
|
15.12.2010, 11:35 | #10 |
Пользователь
Регистрация: 11.07.2010
Сообщений: 29
|
Ещё проблемка возникла. При создании большого количества объектов, в которых содержится двумерный массив с большим количеством элементов, происходит переполнение стека. Как можно избавиться от ограничений. Планирую использовать все 8ГБ оперативы.
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
вектор как закрытый член класса, как изменять его значения? | Zhigool' | Общие вопросы C/C++ | 3 | 08.08.2010 23:19 |
2-мерный динамический массив экземпляров класса. С++ | Парсифаль | Общие вопросы C/C++ | 1 | 29.12.2009 14:35 |
Функция - член класса | Syltan | Общие вопросы C/C++ | 9 | 06.10.2009 23:44 |
Указатеть на функция-член класса | BioS | Общие вопросы C/C++ | 6 | 29.09.2009 00:04 |
Как изменить статический приватный член класса?? | 3dgraph | Помощь студентам | 2 | 07.05.2009 20:06 |