void指针及指针的多次赋值的理解
Posted huangfuyuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了void指针及指针的多次赋值的理解相关的知识,希望对你有一定的参考价值。
1、void指针的类型转换
int A::functionCommamd(const DWORD _from,const DWORD _to,const DWORD Event_type,void * _data,void* _ret) { if (CMD_XXX_NUM==Event_type) { /*PropertiesPtr mProp= *(Properties::PropertiesPtr*)_data; std::string data = mProp->getValue("Data", ""); Json::Reader oReader; Json::Value oValue; char data = oValue["event_info"]["pic_url"]["vehicle_pic_url"].asString().c_str();*/ CHAR*strdata = (char*)_data; std::string* strret = (std::string*)_ret; //指针变量,进来的时候传数据长度,返回获取的图片URL int iBufSize = atoi((*strret).c_str()); return GetCapturePicUrl(strdata, iBufSize, *strret); } return 0; }
调用的时候,传入void指针的类型是什么,什么就强制转换成什么类型的:
funcCommand(1, 2, 3, pstEventInfo->pPlatePicData.get(), &strPlateRet);
strPlateRet虽然为传出参数,也可传入一个参数。但是最好在_data那里传个结构体指针。
2、在一个栈里定义了一个指针,希望两次调用通过修改指针指向内存的数据,来实现不同的函数调用传入不同数据,可能有时候没修改成功,就传了。两次调用加sleep函数,不过最好定义两个指针。
以上是关于void指针及指针的多次赋值的理解的主要内容,如果未能解决你的问题,请参考以下文章