![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#31 | |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]() Код:
Цитата:
|
|
![]() |
![]() |
![]() |
#32 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() Цитата:
Изначально задача была - создание контейнера средствами с++, имитирующего динамический массив, но без привлечения кучи. Однако, эта задача так и не была реализована. При любых раскладах, реализация такой задачи показалась мне слишком уж не практичной, по сравнению с использованием обычной динамической памяти. |
|
![]() |
![]() |
![]() |
#33 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#34 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() Цитата:
Я повторюсь в последний раз: 1. В данной теме задача этого куска кода - продемонстрировать синтаксис языка с++, как следует объявлять функцию, которая возвращает ссылку на массив. Никакого иного смысла этот код не несет. 2. В теме, где иллюстрируется нерабочая поделка, откуда я скопипастил этот кусок кода, преследовались особые цели, которые так и не были достигнуты. Я использовал различные подходы. И возможно, мне может быть и удалось бы получить некое ужассное и жутко не практичное нечто. А может быть и не удалось. В данном случае это не так важно. Важно, что вернуть ссылку на массив вполне себе возможно. Для чего это реально может понадобится - зависит от конкретной ситуации. И только лишь имея знание об этой ситуации, и можно судить о корректности, или не корректности кода. Данный код не корректный. Но он работает. Последний раз редактировалось _Bers; 01.04.2012 в 15:59. |
|
![]() |
![]() |
![]() |
#35 | |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2_Bers
Цитата:
компилирующийся код еще не означает, что он работает. а этот код именно компилирующийся, не более
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 |
|
![]() |
![]() |
![]() |
#36 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() Цитата:
Я тебе подскажу: он будет работать. Не корректно, естественно. Но работать будет. И возвращать наверх ссылку на массив тоже будет. Этого вполне достаточно для иллюстрации того, "как вернуть наверх ссылку на массив", а большего и не требовалось. Если тебя парит, то это - твои личные трудности. |
|
![]() |
![]() |
![]() |
#37 | |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2_Bers
окей. если ты признаешь, что код не корректный, зачем ты кидал ссылку http://www.programmersforum.ru/showp...94&postcount=9 ? что означал твой комментарий Цитата:
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 |
|
![]() |
![]() |
![]() |
#38 | ||
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() Цитата:
Что бы ты понял течение моей мысли. Однако идея провалилась. И смысл провала не в том, что не удаётся сохранить жизнь локального объекта (например, я думал о том, что бы задействовать статические массивы внутри шаблонного метода). Идея провалилась из-за того, что поделка при любых раскладах начала видеться мне непрактичной. Излишне переусложненной. Она не даёт никакого профита по сравнению с "динамическим массивом". К тому же, я так и не нашел красивого решения, как отвязаться от свойства "сингелтон" для такого массива. Поэтому, я не стал продолжать этот эксперимент. Цитата:
Контейнер не доделан. И в том состоянии, в котором он находится сейчас, он является миной замедленного действия. Если бы я нашёл хотя бы какой то способ, как сохранить жизнь локального массива, хотя бы на какое то время, что бы вызывающая сторона успела скопировать данные - возможно, я сумел бы закончить эту разработку "динамического массива", который не дергает кучу. /зы: почему то эта поделка не даёт мне покоя. Иногда, я думаю о том, что решение существует. |
||
![]() |
![]() |
![]() |
#39 |
Форумчанин
Регистрация: 28.02.2011
Сообщений: 122
|
![]()
Да я в общем-то понял, как можно работать с массивом, адрес которого был передан в функцию, приведенный пример, который здесь так обсуждался вполне понятен. Весь вопрос состоял в том, как работать правильно с массивом в этом случае.
Повторенье - мать ученья. И прибежище для лентяев.
|
![]() |
![]() |
![]() |
#40 |
Форумчанин
Регистрация: 18.02.2012
Сообщений: 155
|
![]()
Нужно передавать указатель по ссылке. Тогда можно будет передавать сам указатель, и в функции не нужны будут разыменования.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Объявить массив через функцию. (С++) | Alendorff | Помощь студентам | 11 | 20.02.2012 18:22 |
Передача указателей на массив в функцию. | nibir | Общие вопросы C/C++ | 14 | 06.07.2011 13:24 |
Как передать Динамический массив в функцию? | RainCat | Помощь студентам | 4 | 13.04.2011 11:25 |
Массив используя функцию и процедуру. | Profan4ik | Помощь студентам | 1 | 30.05.2010 14:06 |
Передача указателя на массив в функцию | loser | Общие вопросы C/C++ | 2 | 19.02.2010 19:41 |