初级会员

- 积分
- 53
- 金钱
- 53
- 注册时间
- 2019-5-7
- 在线时间
- 21 小时
|
10金钱
有一个函数为DLPSPEC_ERR_CODE dlpspec_scan_interpret(const void *pBuf, const size_t bufSize,scanResults *pResults)/**
* Function to interpret a serialized scan data blob into a results struct
*
* @param[in] pBuf Pointer to serialized scan data blob
* @param[in] bufSize buffer size, in bytes
* @param[out] pResults Pointer to scanResults struct
*
* @return Error code
*
*/
{
uScanData *pData;
DLPSPEC_ERR_CODE ret_val = (DLPSPEC_PASS);
SCAN_TYPES type;
void *pCopyBuff = (void *)malloc(bufSize);
if(pCopyBuff == NULL)
return (ERR_DLPSPEC_INSUFFICIENT_MEM);
memcpy(pCopyBuff, pBuf, bufSize);
ret_val = dlpspec_scan_read_data(pCopyBuff, bufSize);
if(ret_val < 0)
{
goto cleanup_and_exit;
}
pData = (uScanData *)pCopyBuff;
if(pData->data.header_version != CUR_SCANDATA_VERSION)
{
ret_val = ERR_DLPSPEC_FAIL;
goto cleanup_and_exit;
}
memset(pResults,0,sizeof(scanResults));
type = dlpspec_scan_data_get_type(pData);
if(type == HADAMARD_TYPE)
{
ret_val = dlpspec_scan_had_interpret(pCopyBuff, pResults);
}
else if(type == COLUMN_TYPE)
{
ret_val = dlpspec_scan_col_interpret(pCopyBuff, pResults);
}
else if(type == SLEW_TYPE)
{
ret_val = dlpspec_scan_slew_interpret(pCopyBuff, pResults);
}
else
{
ret_val = ERR_DLPSPEC_INVALID_INPUT;
}
cleanup_and_exit:
if(pCopyBuff != NULL)
free(pCopyBuff);
return ret_val;
}
这个是一个反序列化的函数,
我在调用这个函数的时候应该怎么调用呢,我一直没有搞明白pBuf这个输入是怎么回事,如果pBuf是一个指向一维数组的指针,在调用这个函数的时候,传入的是数组的首地址呀,有些搞不明白,请求大佬们解惑。
感谢!
|
|