读书人

如何拿到字符指针指向变量值的长度

发布时间: 2012-04-17 15:06:33 作者: rapoo

怎么拿到字符指针指向变量值的长度
char *p = value;
value 不确定多长
怎么拿到 value的长度?

[解决办法]

C/C++ code
strlen(p);//这个就是长度
[解决办法]
但是楼主要确保value是个含有结束符的字符串
[解决办法]
不确定你怎么能用char *p = value;
C/C++ code
////////value是个什么类型的
[解决办法]
指针指向字符串 只是指向首地址 跟字符串长度没有关系吧 你想写的是 char *p = "value" ; ?
[解决办法]
用一个指针指向一篇内存的首地址,如果内存中的数据不确定,每个字节都可以是随意的值,是无法计算长度的。如果是字符串,那就是strlen的方式活得。

建议根据实际的需要把指针和内存的长度作为一个结构体来处理。
[解决办法]
依赖于指针指向的值的类型,不是字符串就用sizeof(类型)来获取长度,是字符串就用strlen(p)就可以。
[解决办法]
探讨
value是字符串的话用strlen(p)就可以得到value的长度

[解决办法]
不过我建议楼主,可以在传参数的时候,把长度也传进去。。。
[解决办法]
这种请求本身就不合理,或者说设计思路本身有点问题。
首先不确定value的类型,其次value本身包不包含字符串结束符也不确定,因此得到的value中的字符长度没办法确定,如果value是一个带有字符串结束符的有效字符串,那么你用strlen得到的是正确的,否则得到的结果不确定。
[解决办法]
如果lz 可以确定指向的是一个字符串,可以用 strlen()函数求出长度(不含结束符'\0'),

如果不能,则从理论上讲不能只从一个 char * 求出长度

读书人网 >C语言

热点推荐