|
5 / 5 / 8
Регистрация: 06.04.2013
Сообщений: 103
|
|
Если выделение памяти для динамического массива задать void-функцией, можно ли будет оперировать с ним в main?10.08.2014, 18:00. Показов 3449. Ответов 40
Метки нет (Все метки)
Если выделение памяти для дин.массива задать void-функцией, можно ли будет оперировать с ним в main или придётся отдельно выделять память в main?
0
|
|
| 10.08.2014, 18:00 | |
|
Ответы с готовыми решениями:
40
Выделение памяти для динамического массива
Использование типа void в качестве возвращаемого значения функцией main |
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
||||||
| 11.08.2014, 08:54 | ||||||
|
вставлю свои 5 копеек
![]()
1
|
||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 11.08.2014, 10:30 | ||
|
1. В общем случае тип T нельзя копировать через memcpy, т.к. происходит поверхностное (shallow) копирование, т.е. если например T содержит указатель на данные, скопируется только указатель. 2. Нет проверки на ptr == NULL, т.е. в 5 строке может быть UB. 3. Параметр ptr больше связан с old_size, т.о. его хорошо бы перенести ближе к конце, и так же как для old_size задать умолчание. 4. Нет проверки, что old_size <= new_size. Т.е. можем получить выход за границы. 5. Вместо allocate больше похоже на reallocate.
1
|
||
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|||||||||||
| 11.08.2014, 10:44 | |||||||||||
0
|
|||||||||||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||||||||||||
| 11.08.2014, 10:50 | ||||||||||||
0
|
||||||||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||||
| 11.08.2014, 11:05 | |||||
|
1
|
|||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 11.08.2014, 11:13 | ||
|
sterkh, а какая вообще разница, кто выделил память?
Добавлено через 3 минуты Добавлено через 1 минуту sterkh, кстати, про фунции mallic, realloc, calloc слышал?
0
|
||
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|||||||||||
| 11.08.2014, 11:50 | |||||||||||
а чем тогда можно копировать такие вещи?
0
|
|||||||||||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||
| 11.08.2014, 11:57 | ||
|
Перемещать - http://www.cplusplus.com/reference/algorithm/move/ Что не отменяет необходимость наличия соответствующих конструкторов/операторов.
0
|
||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||||||
| 11.08.2014, 11:59 | |||||||
0
|
|||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 11.08.2014, 12:03 | |||
|
Добавлено через 3 минуты
0
|
|||
|
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
|||
| 11.08.2014, 12:29 | |||
![]() Не по теме: Случайно поставил 'спасибо', как-нибудь можно убрать? Добавлено через 5 минут
0
|
|||
| 11.08.2014, 12:39 | |
|
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 11.08.2014, 12:47 | ||
|
0
|
||
|
Модератор
13782 / 10975 / 6491
Регистрация: 18.12.2011
Сообщений: 29,263
|
||
| 11.08.2014, 12:54 | ||
|
Если prt недействительный (память не выделилась), то разыменование (получение значения по адресу) вызовет глюк. Т.е. проверять действительность ptr через разыменование нельзя. Можно создать метод проверки действительности ptr (если ptr не действителен, то он будет возвращать false). В результате разыменование не понадобится. Только мне не понятно, как этот метод должен выглядеть.
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 11.08.2014, 13:27 | |||
|
Добавлено через 1 минуту Добавлено через 1 минуту Кроме того, если по указателю кратности пять копировать не сами данные, а тройной указатель, то адресация будет двойной косвенности, а используемый указатель свою кратность сохраняет.
0
|
|||
|
Модератор
13782 / 10975 / 6491
Регистрация: 18.12.2011
Сообщений: 29,263
|
||
| 11.08.2014, 13:29 | ||
|
А если в prt сидит не нуль, а мусор?
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||
| 11.08.2014, 13:32 | |||||||
0
|
|||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,822
|
|||
| 11.08.2014, 13:58 | |||
|
Из стандарта, например в 4.4/4:
2
|
|||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 17.08.2014, 07:50 | |
|
0
|
|
| 17.08.2014, 07:50 | |
|
Помогаю со студенческими работами здесь
40
Как задать размеры массива пользователем, не используя динамическое выделение памяти Прошу объяснить, почему перед функцией main, которая ничего не возращает, мы должны писать int, а не void? что плохого если я делаю ф-ю main типа void Как в отдельной функции выделить память для динамического массива, объявленного в main Вызов функции динамического выделение памяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible". . .
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|