-11 / 49 / 9
Регистрация: 29.09.2011
Сообщений: 555
1

Taking address of temporary

13.09.2017, 00:29. Показов 5251. Ответов 4
Метки нет (Все метки)

Я что - то с этим error: taking address of temporary совсем запутался. Это что, новая фитча С++14?
Почему можно
C++
1
2
    IplImage img = _IplImage(*src);
    IplImage* img2 = &img;
но не можно
C++
1
IplImage* img = &_IplImage(*src);
?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.09.2017, 00:29
Ответы с готовыми решениями:

Taking address of temporary [-fpermissive]
Чем заменить cv::Mat **img = new cv::Mat*; if((img = &cv::imread(enumToString(i), 1)) == 0), чтобы...

Ошибка: taking address of temporary array
снова при переходе с С на С++ вылазит ошибка с которой никак не разберусь ...

Предупреждение: returning address of local variable or temporary
Есть код программы для кодирования в base64 и обратно, не самый лучший код, но все же. И вот...

[ошибка] taking address of temporary [-fpermissive]
Доброго времени суток. Работал с DirectX3D и C++, возникла ошибка: D:\game\GR3D...

4
Заклинатель змей
610 / 507 / 213
Регистрация: 30.04.2016
Сообщений: 2,413
13.09.2017, 00:37 2
_20_,
As the error says, you're trying to take the address of this temporary object, which is not legal in C++
Похожая проблема на SO http://su0.ru/rsvp (единственный нормальный способ залить ссылку на Stackoverflow тут )

Не по теме:

Я знаю, что тут не любят SO, но копировать всю ветку оттуда совсем уныло

1
Don't worry, be happy
17758 / 10526 / 2030
Регистрация: 27.09.2012
Сообщений: 26,502
Записей в блоге: 1
13.09.2017, 00:58 3
_20_, там возвращается копия?
Если Вы возьмете адрес временного объекта,
то зачем он Вам понадобится, если объект следом умрет
и указатель будет содержать адрес трупа?
Если уж так нужно, то адрес временного объекта
можно взять с помощью proxy-функции.

Добавлено через 1 минуту
DobroAlex, https://stackoverflow.com/ques... permissive
1
С чаем беда...
Эксперт CЭксперт С++
9989 / 5341 / 1461
Регистрация: 18.10.2014
Сообщений: 12,858
13.09.2017, 01:01 4
Лучший ответ Сообщение было отмечено _20_ как решение

Решение

Цитата Сообщение от _20_ Посмотреть сообщение
но не можно
C++
1
IplImage* img = &_IplImage(*src);
?
А какой вы в этом видите смысл???

Объект _IplImage(*src) - это безымянный временный объект. Он будет автоматически уничтожен сразу же по завершению выполнения этой строчки кода. Ваш указатель img останется указывать "в никуда". Вот поэтому-то и "не можно".
2
-11 / 49 / 9
Регистрация: 29.09.2011
Сообщений: 555
13.09.2017, 01:14  [ТС] 5
Спасибо, мне надо привыкнуть видеть в каждом выражении временные объекты.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.09.2017, 01:14
Помогаю со студенческими работами здесь

Ошибка access violation at address in module borlndmm.dll write of address
Всем здравствуйте. Не могу побороть ошибку "access violation at address in module borlndmm.dll...

access violation at address 40009720 in module 'rtl60.bpl'. read of address
Где может быть проблема?String alphabet1=Edit1->Text,command,way,answer=""; char...

Access violation at address in module. Read of address при скачивании файла
Код программы: unit Unit1; interface uses Winapi.Windows, Winapi.Messages,...

Ошибка: Access violation at address 00474918 in module read of address
когда добовляю вот этот код в программу Application.CreateHandle; Application.ShowMainForm...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru