Можно ли динамически создать массив постоянного размера в C ++?

Прежде всего, я хочу вас всех заверить, что задаю этот вопрос из любопытства. Я имею в виду, не говорите мне, что если мне это нужно, то у моего дизайна проблемы, потому что я не в реальном коде это не нужно. Надеюсь, я убедил вас :) Теперь к вопросу:

Для большинства типов 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);
17
задан Armen Tsirunyan 17 March 2011 в 13:59
поделиться