|
5 / 5 / 8
Регистрация: 06.04.2013
Сообщений: 103
|
|
Если выделение памяти для динамического массива задать void-функцией, можно ли будет оперировать с ним в main?10.08.2014, 18:00. Показов 3277. Ответов 40
Метки нет (Все метки)
Если выделение памяти для дин.массива задать void-функцией, можно ли будет оперировать с ним в main или придётся отдельно выделять память в main?
0
|
|
| 10.08.2014, 18:00 | |
|
Ответы с готовыми решениями:
40
Выделение памяти для динамического массива
Использование типа void в качестве возвращаемого значения функцией main |
|
Пес войны
111 / 88 / 22
Регистрация: 23.02.2012
Сообщений: 653
|
|
| 10.08.2014, 18:02 | |
|
1
|
|
|
5 / 5 / 8
Регистрация: 06.04.2013
Сообщений: 103
|
|
| 10.08.2014, 18:03 [ТС] | |
|
Спасибо
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 10.08.2014, 19:09 | |
|
0
|
|
|
|
||||||
| 10.08.2014, 19:16 | ||||||
|
Tulosba, видимо что-то типа
1
|
||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||
| 10.08.2014, 19:23 | ||||||
|
CyberSolver, в таком варианте указатель на выделенную память не вернется. Если хочется вернуть значение через аргумент-указатель, то уровень указателя (грубо говоря, количество звездочек *) должен быть на 1 больше, чем тип обрабатываемого объекта. Т.е.
2
|
||||||
|
|
|
| 10.08.2014, 19:36 | |
|
Tulosba, ключевыми словами были «что-то типа». И если бы человек написал ваш код, то и вопроса бы не возникло, верно?
0
|
|
|
5 / 5 / 8
Регистрация: 06.04.2013
Сообщений: 103
|
||||||
| 10.08.2014, 20:42 [ТС] | ||||||
0
|
||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 10.08.2014, 23:39 | |
|
1
|
|
|
383 / 281 / 31
Регистрация: 04.09.2009
Сообщений: 1,225
|
||||||
| 11.08.2014, 00:00 | ||||||
Сообщение было отмечено sterkh как решение
Решение
sterkh, а если опираться на С++, то лучше передать ссылку на указатель
1
|
||||||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 11.08.2014, 00:16 | |
|
Лучше уж возвращать указатель. Передавать по не-const ссылке - плохо.
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 11.08.2014, 00:42 | |
|
0
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 11.08.2014, 00:44 | |
|
Очевидно же, что неочевидно
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 11.08.2014, 01:38 | ||
|
Довод, что, мол, понятно становится по операции взятия адреса, что внутри функции объект изменяется в большинстве случаев рассыпается о факт того, что программисту все равно придется смотреть определение (хотя бы чтобы выяснить константность указателя). А раз он посмотрел определение, то ссылка там или указатель уже не важно - программист уже все понял. Чтобы у тебя не сложилось ошибочное мнение, что, мол, я не согласен и везде хочу писать ссылки - сразу скажу: это не так. Всего лишь хотел подчеркнуть, что тема весьма спорная и, принимая это во внимание, так однозначно утверждать про "плохо" или "хорошо" нельзя. Что касается моего мнения на сложившуюся ситуацию, то оно совпадает с первым ответом вот здесь.
1
|
||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 11.08.2014, 02:26 | |
|
Если нужно смотреть большой чужой код и соблюдается данное соглашение, то будет намного легче. Если в функцию передается адрес, то объект может быть её изменен. В остальных случаях, будь то передача по константной ссылке или же по значение, - объект не изменяется. Не нужно будет лишний раз лезть в заголовок за прототипом. Поэтому, я бы отдал предпочтение вот этому соглашению:
http://google-styleguide.googl... _Arguments
1
|
|
|
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
||
| 11.08.2014, 03:20 | ||
|
0
|
||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 11.08.2014, 03:30 | |
|
Множество людей - множество стилей. Если каждый будет писать как захочет, то будет хаос. Для больших проектов это неприемлемо. Да что там больших, для средних даже. Это мое мнение.
0
|
|
|
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
|
| 11.08.2014, 03:33 | |
|
Да очевидно, что надо придерживаться установленных правил, даже если они совершенно не по душе. Мне интересна была аргументация по тому конкретному правилу. Те доводы, которые приводит гугл, по мне так скажем весьма не убедительны
0
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 11.08.2014, 03:41 | |
|
Ну мне тоже думается, что основной причиной являются C'шники. Даже не сами C`шники, сколько сам C, который все еще используется в перемешку с C++. Видел его где то в исходниках Chromium`а.
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||
| 11.08.2014, 08:37 | |||
|
Не по теме: В гуглекстати решили эту проблему просто сделав запись const T * менее предпочтительной.
Это происходит хотя бы потому, что код, особенно такой старый (в смысле с большой историей), как в моем случае, не обязательно написан одной и той же командой (и не обязательно из одной и той же организации). Следовательно запросто могут быть разные гайдлайны (и это часто действительно так: в одной части системы серьезный ООП и полиморфизм, в другой С стиль и процедурное программирование - и вот одна часть кода вызывает другую). Следовательно, в общем случае никаких гарантий нет. Опять же, я не спорю с тобой. Цель поста показать, что есть еще и другие ситуации. Их надо учитывать когда делается общий вывод.
1
|
|||
| 11.08.2014, 08:37 | |
|
Помогаю со студенческими работами здесь
20
Как задать размеры массива пользователем, не используя динамическое выделение памяти Прошу объяснить, почему перед функцией main, которая ничего не возращает, мы должны писать int, а не void? что плохого если я делаю ф-ю main типа void Как в отдельной функции выделить память для динамического массива, объявленного в main Вызов функции динамического выделение памяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|