你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

结构体指针数据初始化的问题?

[复制链接]
watercici 提问时间:2018-5-2 17:17 /
typedef struct BUF{
        unsigned int  headPosition;
        unsigned int tailPosition;
        RecordStruct *Dat_Buf[Buffer_MAX_SIZE];
}ringbuf;


我想问一下,我如何将上述定义中的“RecordStruct *Dat_Buf[Buffer_MAX_SIZE];”初始化为0

收藏 评论11 发布时间:2018-5-2 17:17

举报

11个回答
toofree 回答时间:2018-5-2 17:45:03
本帖最后由 toofree 于 2018-5-2 22:23 编辑

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

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

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

z258121131 回答时间:2018-5-2 17:49:49
memset
与龙共舞 回答时间:2018-5-2 17:55:31
老铁 这是啥问题呀 初始化为0不用你动手  比如你定义int a;系统默认它就是0


你试试
ringbuf Ringbuf;
此时Ringbuf自动初始化全是0

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

す疯Ⅱ恒す 回答时间:2018-5-2 18:09:26
本帖最后由 す疯Ⅱ恒す 于 2018-5-2 18:12 编辑

你是想指针数组里的指针变量为0呢?还是指针指向的数据为0呢?
我暂认为你是第一种,定义一个实体,比如ringbuf Ringbuf;

复制代码
  1. for(int i = 0;i<Buffer_MAX_SIZE;i++)
  2. {
  3.     Ringbuf.Dat_Buf[i] = (RecordStruct *)0;
  4. }
复制代码

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

shanji 回答时间:2018-5-2 18:22:16
す疯Ⅱ恒す 发表于 2018-5-2 18:09
你是想指针数组里的指针变量为0呢?还是指针指向的数据为0呢?
我暂认为你是第一种,定义一个实体,比如rin ...

楼主要的应该是第二种
wenyangzeng 回答时间:2018-5-2 19:55:10

好像不应该在定义typedef struct{}时对其赋值。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

feixiang20 回答时间:2018-5-2 22:41:13
这个不是自动初始化为0的么,那你重新赋值为0看看呢

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

す疯Ⅱ恒す 回答时间:2018-5-3 09:07:25
shanji 发表于 2018-5-2 18:22
楼主要的应该是第二种

那改成下面?
*Ringbuf.Dat_Buf = (RecordStruct )0;

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

xiajintaord 回答时间:2018-5-3 09:34:53
Dat_Buf 是一个大小为 Buffer_MAX_SIZE 的数组,数组里面存放指向 RecordStruct  的指针;
初始化为 0 就是将指针指向 0 吗?你应该将问题描述清楚。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版