嵌套的结构体变量如何用memset()方法初始化?

LHHopencv 2017-09-21 10:22:18
typedef struct _NODE {
int val;
struct _NODE *neighbers[4];
}NODE;

typedef struct _SQUARE {
int score;
NODE nodes[4][4];
NODE *walls[4][4];
}SQUARE;


SQUARE *square = NULL;


怎样初始化square,把square里的值都初始化为0?
...全文
939 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wh_ 2017-10-19
  • 打赏
  • 举报
回复
定义为指针类型了,而且是空指针,那就说明你这个结构体变量就不存在, 不存在怎么给里面的成员赋值?
赵4老师 2017-09-21
  • 打赏
  • 举报
回复
费那事!
static SQUARE squ;
SQUARE *square = □
自信男孩 2017-09-21
  • 打赏
  • 举报
回复
SQUARE *square = NULL;
这句已经是初始化,因为square是指针变量,那么它就是占4个字节(32位系统里),所以这句已经对square初始化了。 如果定义成结构体变量,如果定义的变量是全局的,那么不用初始化,系统会给其初始化; 如果是局部变量,可以通过memset初始化比如;
SQUARE square;
memset(&square, 0, sizeof(square));
srhouyu 2017-09-21
  • 打赏
  • 举报
回复
若只是想初始化出一些空指针,按照一般memset的操作即可。若想把指针指向的内容也初始化,当然没法仅用一次memset。根据需要,在构造函数中调用memset初始化自己的指针型成员。
qq_29846883 2017-09-21
  • 打赏
  • 举报
回复
在struct结构体里加上构造函数, 在构造函数里把所以变量初始化
白菜咸肉 2017-09-21
  • 打赏
  • 举报
回复
SQUARE *square = NULL;//这是指针变量 对结构体变量可以这样初始化为0: SQUARE square={0}; 如果要用memset的话: SQUARE square; memset(&square,0,sizeof(SQUARE));

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧