Законно ли приводить указатель на ссылку на массив, используя static_cast в C ++?
У меня есть указательT * pValues
что я хотел бы рассматривать какT (&values)[N]
В этом так ответhttps://stackoverflow.com/a/2634994/239916Предлагаемый способ сделать это
T (&values)[N] = *static_cast<T(*)[N]>(static_cast<void*>(pValues));
Я беспокоюсь об этом. В его примереpValues
инициализируется следующим образом
T theValues[N];
T * pValues = theValues;
Мой вопрос, является ли приведенная конструкция законной, еслиpValues
происходит от любой из следующих конструкций:
T theValues[N + M]; // M > 0
T * pValues = theValues;
2:T * pValues = new T[N + M]; // M >= 0