Может возникнуть соблазн сделать это:
::std::vector<int[3]> myArray;
Потому что vector
так хорош для динамических массивов. К сожалению, хотя это объявление работает, полученный vector
не может быть использован.
Это будет так же эффективно, если у вас есть ::std::array
(функция C ++ 11), и она действительно будет работать:
::std::vector< ::std::array<int, 3> > myArray;
Если вы можете сделать это, я очень рекомендую это. vector
гораздо приятнее и безопаснее иметь дело, чем массив, который вы должны выделить себе с помощью new
.
В противном случае попробуйте это:
typedef int inner_array_t[3];
inner_array_t *myArray = new inner_array_t[mySize];
И так как вы не хотите использовать typedef по какой-то странной причине, вы можете развернуть его так:
int (*myArray)[3] = new int[mySize][3];