Как создать массив D3DFORMAT в C ++?

D3DFORMAT * arr = NULL;

Это ссылка на массив, который должен содержать типизированные значения D3DFORMAT.
Как выделить память для этого массива, размер которого определяется переменной

unsigned int arrsize;

Должен ли я рассчитать размер массива в байтах как = sizeof (D3DFORMAT) * arrsize;

А чем использовать memset ().?

Пожалуйста, поправьте меня, если я ошибаюсь. Или, если для этого есть более чистый метод C ++. ?

Заблаговременно. Спасибо

1

Решение

«чище лучше метод 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);
3

Другие решения

Как это

D3DFORMAT* arr = new D3DFORMAT[arrsize];

memset может работать, или это может привести к сбою вашей программы. Все зависит от того, как D3DFORMAT был определен. Можете ли вы опубликовать определение D3DFORMAT?

Просто заметил, что вы попросили лучший метод. Вероятнее всего, лучший метод

std::vector<D3DFORMAT> arr(arrsize);

но опять же, это зависит от того, как D3DFORMAT определено.

3

По вопросам рекламы [email protected]