Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Fedor666
Основоположник на всё
42 / 42 / 2
Регистрация: 22.02.2010
Сообщений: 311
1

Возвращение адреса локальной переменной

29.01.2017, 13:38. Просмотров 1056. Ответов 3
Метки нет (Все метки)

Добрый день!
Нужна функция читающая из файла разные медиа-данные в память. Размер заранее неизвестен, поэтому сразу память выделить, прочитать туда и вернуть указатель. Удаляться память потом будет, когда данные станут не нужны (знаю, что плохо).
C++
1
2
3
4
void* RetData = new BYTE(Item.Size);
SetFilePointer(hFile, Item.Offset, 0, FILE_BEGIN);
ReadFile(hFile, RetData, Item.Size, &FileSizeHigh, 0);
return &RetData;
Ругается: warning C4172: возвращение адреса локальной или временной переменной. Может я чего-то не так делаю? Вообще это работать будет? Или ругань компилятора отключить или как сделать нормально? Подскажите, плиз.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2017, 13:38
Ответы с готовыми решениями:

Возвращение адреса на элемент структуры
Здравствуйте. У меня в классе есть структура. Может ли метод класса возвращать...

Возвращение адреса. Не много не до понял
Задание: Напишите функцию, которая находит минимальное значение в массиве,...

Возвращение переменной из функции по значению
подумал тут: а почему компилируется сие? std::map<std::string, std::size_t>...

Создание новой локальной переменной
Когда мы приводим переменную к другому типу, ВСЕГДА СОЗДАЕТСЯ новая локальная...

Использование неинициализированной локальной переменной
#include <iostream> #include <conio.h> #include <math.h> using namespace...

3
likehood
965 / 814 / 390
Регистрация: 25.12.2016
Сообщений: 2,691
Завершенные тесты: 3
29.01.2017, 13:40 2
Лучший ответ Сообщение было отмечено Fedor666 как решение

Решение

Очевидно, нужно возвращать указатель RetData, а не его адрес:
C++
1
return RetData;
1
Fedor666
Основоположник на всё
42 / 42 / 2
Регистрация: 22.02.2010
Сообщений: 311
29.01.2017, 13:43  [ТС] 3
likehood, А, блин, у меня ссылка на адрес получилась! Спасибо! Устал - хватит на сегодня!
0
likehood
965 / 814 / 390
Регистрация: 25.12.2016
Сообщений: 2,691
Завершенные тесты: 3
29.01.2017, 13:51 4
Цитата Сообщение от Fedor666 Посмотреть сообщение
у меня ссылка на адрес получилась
Точнее, указатель на указатель, то есть двойной указатель.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2017, 13:51

Вывод адреса переменной типа char
Всем привет! Хочу задать вопрос... есть код: #include <iostream> int...

Разрушение стека около локальной переменной
В функции имеется такая строка char target=""; Все работает хорошо, но при...

Взятие адреса у константной переменной при объявлении
Можно пример?


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru