我有一个变量:
uint8_t* data
我想为这些数据添加一个标题。正好两个数字。我想要这样的数据:data+my_int+my_second_int
之后,我必须将我的数据提供给一个函数(我无法修改),以及我的数据的大小。
像这样 :myfunction(data,size);
这是目前我的代码的样子:
struct Data {
uin8_t* data;
uint32_t PTS;
uint32_t DTS;
uint16_t size_data;
};
struct Data* mydata;
mydata->data = data; // data I get before
mydata->size_daza = size; // size I get before
mydata->PTS = GST_BUFFER_PTS(buf);
mydata->DTS = GST_BUFFER_DTS(buf);
myfunction(mydata,sizeof(struct Data)); // My function , this function add also a header to my data (another).I can't access or modify this function.
在此之后,发生了多件事情(没关系),最后另一个函数删除了附加“myfunction”的标题,然后我将该函数给出的数据转换为 struct Data*。我可以访问 DTS、PTS、大小,但数据上有一个 SIGSEGV 错误。
我想我必须改变我的结构,但我没有看到其他方式来存储没有指针的缓冲区。