首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印u_chars数组

打印u_chars数组
EN

Stack Overflow用户
提问于 2010-12-10 23:47:15
回答 4查看 1.5K关注 0票数 1

我有一个u_chars数组,我想使用printf打印它。我不知道数组的大小:

代码语言:javascript
复制
u_char *ip_p;
printf("%s", ip_p); // EXC_BAD_ACCESS D:<

我想把这个打印出来。我该怎么做呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-10 23:52:59

这是不可能做到的。指针不会神奇地包含有关指向的数据大小的信息。

如果没有约定(终止符字节或某处编码的长度),您就无法知道有多少数据是有效的,从而无法知道要打印多少数据。

票数 6
EN

Stack Overflow用户

发布于 2010-12-11 00:01:15

如果你不知道大小,你怎么能指望printf知道呢?修复您的代码以将大小作为附加参数传递。然后,您可以使用:

代码语言:javascript
复制
printf("%.*s", size, buf);

但是,看起来您的数据可能不是文本,而是二进制。如果是这样的话,我质疑用printf打印它的价值...

票数 1
EN

Stack Overflow用户

发布于 2010-12-10 23:53:50

如果ip_p是NUL终止的,那么您的代码将正常工作。看一下代码片段中的注释,我会说它并没有终止...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4410550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档