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指针及指针的多次赋值的理解的主要内容,如果未能解决你的问题,请参考以下文章

C++智能指针简述:智能指针总结及补充

初学c语言指针问题

void指针和NULL指针

函数指针和函数对象

从 'void *' 对 'int' 的赋值使指针从没有强制转换的整数

从void指针中获取一个指向short的int