私は変数を持っています:
uint8_t* data
そして、これらのデータにヘッダーを追加したいと思います。ちょうど2つの数字。次のようなデータが必要です: 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」を追加したヘッダーを削除し、この関数によって与えられたデータを構造体 Data* にキャストします。DTS、PTS、サイズにアクセスできますが、データに SIGSEGV エラーがあります..
構造を変更する必要があると思いますが、ポインターなしでバッファーを格納する他の方法がわかりません。