C++ 如何在c+中将void*转换为float(*)[3]+;?

C++ 如何在c+中将void*转换为float(*)[3]+;?,c++,casting,C++,Casting,这是代码片段 typedef struct Lib3dsMesh { //.. float (*vertices)[3]; //.. } void* lib3ds_util_realloc_array(void *ptr, int old_size, int new_size, int element_size) { // Do something here. return ptr; } mesh->vertices = lib3ds_util_reall

这是代码片段

typedef struct Lib3dsMesh {
 //..
 float (*vertices)[3]; 
 //..
}


void* lib3ds_util_realloc_array(void *ptr, int old_size, int new_size, int  element_size) {
    // Do something here.
    return ptr;
}


mesh->vertices = lib3ds_util_realloc_array(mesh->vertices, mesh->nvertices, nvertices, 3 * sizeof(float));
在VisualC++中编译此代码时,返回错误“不能从空隙转换为浮点(*)[3 ]”。
我想知道如何将void*转换为float(*顶点)[3]

顶点
是一个。要从一种指针类型转换到另一种指针类型,通常使用
static\u cast

void* result = lib3ds_util_realloc_array(
    mesh->vertices, mesh->nvertices, nvertices, 3 * sizeof(float));
mesh-vertices = static_cast<float (*)[3]>(result);
void*result=lib3ds\u util\u realloc\u数组(
网格->顶点,网格->多边形,多边形,3*sizeof(float));
网格顶点=静态投影(结果);

像施放其他任何东西一样施放它。目前,您不是强制转换(显式转换),而是依赖隐式转换(不存在)。