Законно ли приводить указатель на ссылку на массив с помощью static_cast в C++?C++

Программы на C++. Форум разработчиков
Anonymous
Законно ли приводить указатель на ссылку на массив с помощью static_cast в C++?

Сообщение Anonymous »

У меня есть указатель T * pValues, который я хотел бы просмотреть как T (&values)[N]
В этом SO-ответе https: //stackoverflow.com/a/2634994/239916, предлагаемый способ сделать это
T (&values)[N] = *static_cast(static_cast(pValues));

Меня беспокоит следующее. В его примере pValues инициализируется следующим образом
T theValues[N];
T * pValues = theValues;

Мой вопрос заключается в том, является ли конструкция приведения допустимой, если pValues происходит от любой из следующих конструкций:
1:
T theValues[N + M]; // M > 0
T * pValues = theValues;

2:
T * pValues = new T[N + M]; // M >= 0


Подробнее здесь: https://stackoverflow.com/questions/213 ... -cast-in-c

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