一般来说,根据C标准,它是否保证带有0的memset()会清零C结构中的填充位?
gcc怎么样?
例如,像:
struct MyStruct { unsigned char member1; unsigned int member2; char member3; unsigned char member4; float member5; }; struct MyStruct ms; memset(&ms,sizeof( struct MyStruct));
解决方法
也许值得注意的是,memset不知道你的结构(或数组,或原始,或任何大部分的内存,你碰巧释放它),所以即使它想要保持填充位不变,甚至知道他们在哪里.