读书人

C++小常识之(Void*)类型的参数赋值

发布时间: 2013-10-22 16:17:03 作者: rapoo

C++小知识之(Void**)类型的参数赋值

如下函数定义:

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,他们都是指向指针的指针,只是类型不同而已,所以需要强转一下。


读书人网 >C++

热点推荐