这种内存清零方法安全不?解决方案

这种内存清零方法安全不?
比如:
C/C++ code

typedef struct{
  int a;
  char b;
  flag c;
  other_struct_type d[200];
}example_type;

example_type example;
unsigned char* p = (unsigned char*)&example;

for(i = 0; i < sizeof(example); i++)
  {
    *p=0;
    p++;
  }



当没有内存对齐之类的问题时,肯定没问题;但当牵涉到内存对齐啊啥的,这种方法还100%安全吗?
结构体地址范围内可能有一些空白,对那些空白清零不知道有没有什么危险?

------解决方案--------------------
直接memset
------解决方案--------------------
为啥不用memset?
------解决方案--------------------
当没有内存对齐之类的问题时,肯定没问题;但当牵涉到内存对齐啊啥的,这种方法也100%安全
但是用memset比这样方便,速度应该快些,因为memset是库提供的方法
------解决方案--------------------
没什么问题,中间的空白内存也是作为已分配内存,不会有冲突的
------解决方案--------------------
没什么问题,不过可以直接用memset,更方便