D3DFORMAT *arr = NULL;
这是对应该保存 D3DFORMAT 类型值的数组的引用。如何为这个大小由变量定义的数组分配内存
unsigned int arrsize;
我应该以字节为单位计算数组的大小= sizeof(D3DFORMAT)*arrsize;
而不是使用 memset().?
如果我错了,请纠正我。或者,如果 tere 是一种更清洁、更好的 C++ 方法来执行此操作。?
提前。谢谢
D3DFORMAT *arr = NULL;
这是对应该保存 D3DFORMAT 类型值的数组的引用。如何为这个大小由变量定义的数组分配内存
unsigned int arrsize;
我应该以字节为单位计算数组的大小= sizeof(D3DFORMAT)*arrsize;
而不是使用 memset().?
如果我错了,请纠正我。或者,如果 tere 是一种更清洁、更好的 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
定义。