|
21 / 55 / 9
Регистрация: 29.09.2011
Сообщений: 617
|
|||||||||||
Taking address of temporary [-fpermissive]15.09.2017, 23:28. Показов 3784. Ответов 12
Метки нет (Все метки)
Чем заменить
Функция cv::imread(..) возвращает значание Mat.
0
|
|||||||||||
| 15.09.2017, 23:28 | |
|
Ответы с готовыми решениями:
12
Ошибка: taking address of temporary array
|
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
||||||
| 16.09.2017, 00:01 | ||||||
Сообщение было отмечено _20_ как решение
Решение
1
|
||||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||||||
| 16.09.2017, 00:15 | |||||||
|
Если img[i] - это адрес, то в данном выражении он никогда не может быть null, т.к. imread возвращает объект по значению, а значит проверка не имеет смысла, даже если бы адрес временного объекта можно было взять.Добавлено через 1 минуту И в #2 проверка также не имеет смысла, т.к. new будет бросать исключение, в случае неудачи, а не возвращать nullptr.Чего сделать-то надо? Добавлено через 9 минут Т.к. не известно зачем там понадобился указатель, и автор не хочет отвечать, пока предложу такой вариант:
1
|
|||||||
|
Вездепух
12922 / 6789 / 1818
Регистрация: 18.10.2014
Сообщений: 17,178
|
||
| 16.09.2017, 00:19 | ||
|
1
|
||
|
21 / 55 / 9
Регистрация: 29.09.2011
Сообщений: 617
|
|
| 16.09.2017, 01:12 [ТС] | |
|
DrOffset,
Спасибо Вам за пояснения про сравнение, но вопрос был не про это. Меня интересует, как действовать, если функция возвращает объект, который я хочу сохранить. Казалось бы взять адрес да и сохранить в массиве, ан, нет не получается. Вот про это вопрос. nd2 предложил через оператор new. Но, по моему, это прокатит, если определён конструктор Mat(Mat) (могу ошибаться). А что делать, если нет? DrOffset, Ваш вариант хорош, если объекты небольшие или скорость не требуется. Одномерные массивы должны быть непрерывны в памяти, и при добавлении следующего элемента места может нехватить и начнётся перенос всех элементов на новое место, что не есть хорошо. Поэтому я использовал массив указателей. Могли бы Вы объяснить "работает со значанием" - что Вы имели в виду? TheCalligrapher, Объект должен пережить данную функцию и помереть только с моего разрешения.
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||||||||
| 16.09.2017, 01:38 | |||||||||
|
О какой нехватке места идет речь? Ты собираешься в этом случае вручную перераспределять память под элементы? Выделять новый массив указателей, копировать туда указатели из старого массива, а старый массив удалять? Не проще ли список тогда использовать? Продлить жизнь временного объекта (но только до конца области видимости) можно, если использовать ссылку:
Если же хочется найти какое-то шаблонное решение "на все времена", то это мимо. Надо думать головой в каждой конкретной ситуации. Нет серебряных пуль. А если бы были, то профессия программиста давно выродилась бы, т.к. подверглась бы тотальной автоматизации.
1
|
|||||||||
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
||
| 16.09.2017, 01:56 | ||
|
1
|
||
|
21 / 55 / 9
Регистрация: 29.09.2011
Сообщений: 617
|
|||
| 16.09.2017, 01:58 [ТС] | |||
|
0
|
|||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||||
| 16.09.2017, 02:09 | ||||
|
В чем проблема? Если функция всегда должна давать такой объект, временем жизни которого ты сам хочешь полностью управлять, то это изначально должен быть динамический объект. Вывод: в этом случае нужно изменить функцию.
1
|
||||
|
21 / 55 / 9
Регистрация: 29.09.2011
Сообщений: 617
|
|
| 16.09.2017, 02:33 [ТС] | |
|
nd2, Определён. Я там ещё доискался функции .empty(), чтоб с нулём не сравнивать. Вопрос более на будущее. Но ответ в принципе уже дан.
DrOffset, Зачем же список? Почему Вам таблица указателей так не нравится? Доступа к функции нет, а другой подход к копированию переменных я не вижу. Но задача уже решена, большое спасибо всем отписавшимся.
0
|
|
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
|||
| 16.09.2017, 03:19 | |||
|
1
|
|||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||
| 16.09.2017, 11:37 | |||
1
|
|||
|
21 / 55 / 9
Регистрация: 29.09.2011
Сообщений: 617
|
|
| 16.09.2017, 15:20 [ТС] | |
|
DrOffset,
Большое спасибо за ответ. Думаю, что перенос 100 адресов - это перенос 200 (или 400) байт, более, чем терпимо для моей задачи. Так, что я пока останусь при массивах, но если мне понадобиться вдруг бОльшая скорость создания массива, то я непременно воспользуюсь Вашим советом.
0
|
|
| 16.09.2017, 15:20 | |
|
Помогаю со студенческими работами здесь
13
[ошибка] taking address of temporary [-fpermissive] Access violation at address in module. Read of address при скачивании файла access violation at address 40009720 in module 'rtl60.bpl'. read of address Ошибка access violation at address in module borlndmm.dll write of address Access violation at address . in module 'DFWEDIT.DLL'. Read at address Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|