结构体指针数据初始化的问题?
typedef struct BUF{unsigned intheadPosition;
unsigned int tailPosition;
RecordStruct *Dat_Buf;
}ringbuf;
我想问一下,我如何将上述定义中的“RecordStruct *Dat_Buf;”初始化为0
本帖最后由 toofree 于 2018-5-2 22:23 编辑
是想把指针数组的每个指针都指向0吗?
把结构体类型定义和具体的结构体定义分开试试。
如果想把指针指向的变量为零,那么你在定义变量的时候初始化为0就可以。
结构体定义只管指针,不管指向的变量,也就是说定义结构体的时候,这个指针为空,野指针。
memset 老铁 这是啥问题呀 初始化为0不用你动手比如你定义int a;系统默认它就是0
:lol:lol:lol:lol
你试试
ringbuf Ringbuf;
此时Ringbuf自动初始化全是0 本帖最后由 す疯Ⅱ恒す 于 2018-5-2 18:12 编辑
你是想指针数组里的指针变量为0呢?还是指针指向的数据为0呢?
我暂认为你是第一种,定义一个实体,比如ringbuf Ringbuf;
for(int i = 0;i<Buffer_MAX_SIZE;i++)
{
Ringbuf.Dat_Buf = (RecordStruct *)0;
}
す疯Ⅱ恒す 发表于 2018-5-2 18:09
你是想指针数组里的指针变量为0呢?还是指针指向的数据为0呢?
我暂认为你是第一种,定义一个实体,比如rin ...
楼主要的应该是第二种
好像不应该在定义typedef struct{}时对其赋值。 这个不是自动初始化为0的么,那你重新赋值为0看看呢 shanji 发表于 2018-5-2 18:22
楼主要的应该是第二种
那改成下面?
*Ringbuf.Dat_Buf = (RecordStruct )0; Dat_Buf 是一个大小为 Buffer_MAX_SIZE 的数组,数组里面存放指向 RecordStruct的指针;
初始化为 0 就是将指针指向 0 吗?你应该将问题描述清楚。
页:
[1]
2