watercici 发表于 2018-5-2 17:17:27

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

typedef struct BUF{
        unsigned intheadPosition;
        unsigned int tailPosition;
        RecordStruct *Dat_Buf;
}ringbuf;


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

toofree 发表于 2018-5-2 17:45:03

本帖最后由 toofree 于 2018-5-2 22:23 编辑

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

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

z258121131 发表于 2018-5-2 17:49:49

memset

与龙共舞 发表于 2018-5-2 17:55:31

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

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

す疯Ⅱ恒す 发表于 2018-5-2 18:09:26

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

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

for(int i = 0;i<Buffer_MAX_SIZE;i++)
{
    Ringbuf.Dat_Buf = (RecordStruct *)0;
}

shanji 发表于 2018-5-2 18:22:16

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

楼主要的应该是第二种

wenyangzeng 发表于 2018-5-2 19:55:10


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

feixiang20 发表于 2018-5-2 22:41:13

这个不是自动初始化为0的么,那你重新赋值为0看看呢

す疯Ⅱ恒す 发表于 2018-5-3 09:07:25

shanji 发表于 2018-5-2 18:22
楼主要的应该是第二种

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

xiajintaord 发表于 2018-5-3 09:34:53

Dat_Buf 是一个大小为 Buffer_MAX_SIZE 的数组,数组里面存放指向 RecordStruct的指针;
初始化为 0 就是将指针指向 0 吗?你应该将问题描述清楚。
页: [1] 2
查看完整版本: 结构体指针数据初始化的问题?