buf赋值结构体问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
C语言用字符串直接给结构体赋值方法
 
struct sTime
 
{
    char year[4];
 
    char month[2];
 
    char day[2];
 
};
int main()
{
    char buf[8]="20130525";
 
    struct sTime stime;
 
    memcpy(&stime,buf,8);
 
    printf("year: %s\n",stime.year);
    printf("month: %s\n",stime.month);
    printf("day: %s\n",stime.day);
}
 
结果:
    year:20130525
 
    month:0525
 
    day:25
 
反复尝试,都不行,包括加'\0',是否结构体定义的时候,每个成员变量的大小都加1,如果先把已经赋值好的结构体传给buf,然后用buf再赋值给结构体,就正常,请大虾们给的正确方法。

  https://wenwen.sogou.com/z/q705387572.htm

 

解决方法:

https://bbs.csdn.net/topics/390473647?locationNum=9&fps=1

posted on   lydstory  阅读(492)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2019-03-25 StartServiceCtrlDispatcher
2019-03-25 sc start service 1063 1053 错误原因
2019-03-25 OpenSCManager
2019-03-25 Ogre

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示