Прежде всего, я хочу вас всех заверить, что задаю этот вопрос из любопытства. Я имею в виду, не говорите мне, что если мне это нужно, то у моего дизайна проблемы, потому что я не в реальном коде это не нужно. Надеюсь, я убедил вас :) Теперь к вопросу:
Для большинства типов T мы можем написать
T* p = new T;
, а что, если T является типом массива?
int (*p)[3] = new ???; //pointer to array of 3 = new ???
Я пробовал это:
typedef int arr[3];
arr* p = new arr;
, но это не работает.
Есть ли для этого допустимый синтаксис или это невозможно в C ++. Если это невозможно, то почему? Спасибо
Отредактируйте : я полагаю, я не достаточно ясно понял. Я хочу иметь возможность использовать его в этой ситуации:
void f(int(&)[3]);
int (*p)[3] = new ???;
f(*p);