如何求结构体中一个变量的长度

发布于 2021-11-27 17:19:10 字数 537 浏览 784 评论 5

我要求一个结构体中某变量的长度,变量中的数据是随机的,怎么求它的长度?我的代码如下:

#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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

牵你的手,一向走下去 2021-11-28 09:43:58

sizeof求出来的长度是固定的......不是用sizeof...我只是相求里面数据段的长度

风苍溪 2021-11-28 09:42:16

你是要求变量占用的内存长度嘛,sizeof…?

左岸枫 2021-11-28 09:06:04

谢谢喔,应该就是越界的问题,谢谢

屌丝范 2021-11-28 05:22:55

你说的是什么长度?字符串的长度你可以用strlen,变量占用的字节数请用sizeof 。字符串存储时注意最后结尾的''。所以你在b中放222时,已经越界了,在c中放3333也越界了。求出来的长度是7只是碰巧了。碰巧你用的编译器给b分配3字节后紧跟着是给c分配的4字节,而且在strlen时碰巧c后面的内存没被别的程序使用。

平生欢 2021-11-28 01:37:32

来人帮忙解答下哇,么么哒

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文