D3DFORMAT * arr = NULL;
Это ссылка на массив, который должен содержать типизированные значения D3DFORMAT.
Как выделить память для этого массива, размер которого определяется переменной
unsigned int arrsize;
Должен ли я рассчитать размер массива в байтах как = sizeof (D3DFORMAT) * arrsize;
А чем использовать memset ().?
Пожалуйста, поправьте меня, если я ошибаюсь. Или, если для этого есть более чистый метод C ++. ?
Заблаговременно. Спасибо
«чище лучше метод C ++» — использовать std :: vector
unsigned int arrsize = 10;
std::vector <D3DFORMAT> array (arrsize );
бросить его void*
void* p = (void*)(&array[0]);
вы также захотите, чтобы ваши значения были по умолчанию 0, поэтому просто добавьте еще один параметр в конструктор
unsigned int arrsize = 10;
std::vector <D3DFORMAT> array (arrsize, 0);
Как это
D3DFORMAT* arr = new D3DFORMAT[arrsize];
memset
может работать, или это может привести к сбою вашей программы. Все зависит от того, как D3DFORMAT
был определен. Можете ли вы опубликовать определение D3DFORMAT
?
Просто заметил, что вы попросили лучший метод. Вероятнее всего, лучший метод
std::vector<D3DFORMAT> arr(arrsize);
но опять же, это зависит от того, как D3DFORMAT
определено.