发 帖  
张飞软硬开源基于STM32 BLDC直流无刷电机驱动器开发视频套件, 👉戳此立抢👈
[问答] 结构体指针数据怎么初始化?
482 结构体
分享
typedef struct BUF{
        unsigned int  headPosition;
        unsigned int tailPosition;
        RecordStruct *Dat_Buf[Buffer_MAX_SIZE];
}ringbuf;


我想问一下,我如何将上述定义中的“RecordStruct *Dat_Buf[Buffer_MAX_SIZE];”初始化为0
0
2019-1-10 09:09:25   评论 分享淘帖 邀请回答
16个回答
本帖最后由 toofree 于 2018-5-2 22:23 编辑

是想把指针数组的每个指针都指向0吗?
把结构体类型定义和具体的结构体定义分开试试。

如果想把指针指向的变量为零,那么你在定义变量的时候初始化为0就可以。
结构体定义只管指针,不管指向的变量,也就是说定义结构体的时候,这个指针为空,野指针。
2019-1-10 09:17:27 评论

举报

RecordStruct 那是一个结构呀,你怎么能给一个结构赋0呢,
2019-1-10 09:32:01 评论

举报

老铁 这是啥问题呀 初始化为0不用你动手  比如你定义int a;系统默认它就是0


你试试
ringbuf Ringbuf;
此时Ringbuf自动初始化全是0
2019-1-10 09:51:48 评论

举报

本帖最后由 す疯Ⅱ恒す 于 2018-5-2 18:12 编辑

你是想指针数组里的指针变量为0呢?还是指针指向的数据为0呢?
我暂认为你是第一种,定义一个实体,比如ringbuf Ringbuf;
滔滔不绝的滔滔 发表于 2019-1-10 16:30
本帖最后由 す疯Ⅱ恒す 于 2018-5-2 18:12 编辑

你是想指针数组里的指针变量为0呢?还是指针指向的数据为0呢?

楼主要的应该是第二种
2019-1-10 10:21:25 评论

举报

好像不应该在定义typedef struct{}时对其赋值。
2019-1-10 10:31:33 评论

举报

这个不是自动初始化为0的么,那你重新赋值为0看看呢
2019-1-10 10:43:18 评论

举报

jufenyi 发表于 2019-1-10 16:41
楼主要的应该是第二种

那改成下面?
*Ringbuf.Dat_Buf = (RecordStruct )0;
Dat_Buf 是一个大小为 Buffer_MAX_SIZE 的数组,数组里面存放指向 RecordStruct  的指针;
初始化为 0 就是将指针指向 0 吗?你应该将问题描述清楚。
2019-1-10 11:11:55 评论

举报

2019-1-10 11:45:33 评论

举报

2019-1-12 11:42:07 评论

举报

2019-1-12 11:42:24 评论

举报

2019-1-12 11:42:34 评论

举报

2019-1-12 11:42:40 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

我要提问
课程
    关闭

    站长推荐 上一条 /8 下一条