我有一个二进制文件,需要解析某些字符串并设置一个指针。

数据格式如下:

typedef struct{
 int ID;
 int DataSize;
 void* Data;
}


所以以字节格式

16 03 48 45 59 17 05 48 45 4C 4C 4F

ID-16,DataSize = 3,字符串(0x48,0x45,0x59)-嘿

ID-17,DataSize = 5,字符串(0x48、0x45、0x4C,0x4C,0x4F)-HELLO

我在想办法将指针设置为仅指向HEY且之后没有任何数据以便将其打印出来时遇到麻烦。我很确定我需要以某种方式使用DataSize。我正在逐字节解析二进制文件。

最佳答案

您不能使用指针执行此操作,因为字符串需要以0个字符结尾。

但是你可以做一个

strncpy(buffer, x.Data, x.DataSize);
buffer[x.DataSize]='\0';

07-24 20:58