如何求结构体中一个变量的长度
我要求一个结构体中某变量的长度,变量中的数据是随机的,怎么求它的长度?我的代码如下:
#include <stdio.h>
#include <string.h>struct date
{
char a[2];
char b[3];
char c[4];
};
int main (int argc, char *argv[])
{
struct date A;
char buf[9];
strcpy(A.a,"11");strcpy(A.b,"2");
strcpy(A.c,"3333");
printf("%dn",sitrlen(A.b));
return 0;
}
求出来的值是1;将strcpy(A.b,"2")这一句换为strcpy(A.b,"222")求出来的长度是7,这是为什么呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
sizeof求出来的长度是固定的......不是用sizeof...我只是相求里面数据段的长度
你是要求变量占用的内存长度嘛,sizeof…?
谢谢喔,应该就是越界的问题,谢谢
你说的是什么长度?字符串的长度你可以用strlen,变量占用的字节数请用sizeof 。字符串存储时注意最后结尾的''。所以你在b中放222时,已经越界了,在c中放3333也越界了。求出来的长度是7只是碰巧了。碰巧你用的编译器给b分配3字节后紧跟着是给c分配的4字节,而且在strlen时碰巧c后面的内存没被别的程序使用。
来人帮忙解答下哇,么么哒