请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,我想请教一个关于void *的问题;

老师,您好!我现在有一个数组buf,她里面包含以下内容;
buf[0]位置存储的是一个数字,假设为name_len,
buf[1]到buf[name_len]存储的是一个字符串,之后,

buf[name_len+1]='\0';
buf[name_len+2]='E';

在name_len+3处,是:

memcpy(buf + name_len + 3, &type, 2);

其中,type的值是1;
最后,

typedef struct knot_db_val {
  void *data;
  size_t len;
} knot_db_val_t;

(knot_db_val_t){ buf + 1, name_len + 4 }

目前,我想知道上面的void* data里面存储的具体的形式,我该怎么处理,我现在不管怎么操作,对于上面的type输出之后都是乱码,就是之前buf里面的1到name_len+2这个范围内的输出正常,但是之后的部分,不能正常输出。

正在回答

1回答

乱码是因为解析的方式不对,你先弄清这里到底存储的是什么编码方式的数据。

0 回复 有任何疑惑可以回复我~
  • 提问者 mahsiaoko #1
    那老师,c语言如何使用printf输出unsigned  char类型的数据,
    回复 有任何疑惑可以回复我~ 2020-03-26 13:21:40
  • quickzhao 回复 提问者 mahsiaoko #2
    去查一下printf的使用说明,如果要是直接输出内容其实可以使用C++ cout,看原始内容直接调试看内存。
    回复 有任何疑惑可以回复我~ 2020-03-26 13:44:16
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信