我有一个二进制文件,需要解析某些字符串并设置一个指针。
数据格式如下:
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';