如下函数定义:
std::string initTexture(void** depthTexBuf,int width, int height);
如果想调用此函数,depthTexBuf参数,应该怎么声明和初始化一个变量,调用上面的函数时,作为实参传入呢?
正确的变量声明:
unsigned char* pDepthTexBuf;
depthTexID = initTexture((void**)&pDepthTexBuf,texWidth, texHeight) ;
void*是无类型指针。
void**就是无类型指针的指针。
&取变量地址的运算符。
(类型)为强制转换类型。
(void**)&变量,就是把变量的地址强制转换为无类型指针的指针。
&pDepthTexBuf 等价于 void** depthTexBuf,他们都是指向指针的指针,只是类型不同而已,所以需要强转一下。