У меня есть указатель 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