Нельзя использовать синтаксис инициализатора массива с динамически размещаемыми массивами, используя new
. Вы могли бы сделать что-то вроде этого:
BYTE *ary=new BYTE[2];
ary[0] = 0;
ary[1] = 0;
Function(ary);
delete [] ary;
Но почему вы используете динамически распределенную память здесь? Содержится ли массив вне области действия текущей функции? Если нет, вы можете использовать массив, выделенный в стеке:
BYTE ary[2] = {0};
Function(ary);
В C ++ предпочтительным методом является использование класса STL std::vector
, который действует как динамически размещаемый (но безопасный для типов) массив:
std::vector<BYTE> ary(2);
Function(&ary[0]);