Адрес объекта в массиве, возвращаемом функциейC++

Программы на C++. Форум разработчиков
Anonymous
Адрес объекта в массиве, возвращаемом функцией

Сообщение Anonymous »

Я постепенно переношу и реорганизую код C на C++.
В исходном коде C у меня есть такие конструкции:

Код: Выделить всё

Object* obj = &objects[index];
где объекты — это глобальный объект[].
Я провел рефакторинг кода, чтобы массив распределялся динамически и массив содержит другой объект:

Код: Выделить всё

struct Info {
Object* objects;
};
В результате постепенного рефакторинга я написал следующую бесплатную функцию:

Код: Выделить всё

Object* GetObjects(Info* i) {
return i->objects;
}
Теперь мой вопрос:
Ведет ли следующий код так, как я ожидал (получение адреса объекта в массиве)?:< /p>

Код: Выделить всё

Object* obj = &GetObjects(info)[index];
Получаю ли я здесь адрес объекта в массиве (того, что хочу) или адрес указателя или какое-то rvalue и вызываю UB? имеет более высокий приоритет, чем и , но учитывается ли это также для вызовов функций?

Подробнее здесь: https://stackoverflow.com/questions/786 ... y-function

Вернуться в «C++»