c - 是否保证 memset 会将结构中的填充位清零?

标签 c gcc memset

一般来说,根据 C 标准,是否保证 memset() 为 0 会将 C 结构中的填充位清零?

gcc 呢?

例如,像这样的东西:

struct MyStruct
{
    unsigned char   member1;
    unsigned int    member2;
    char        member3;
    unsigned char   member4;
    float       member5;    
};

struct MyStruct ms;

memset(&ms, 0, sizeof( struct MyStruct));

最佳答案

也许值得注意的是,memset 对您的结构(或数组、原语或任何您碰巧释放它的内存块)一无所知,所以即使它想要为了保持填充位完好无损,它甚至不知道它们在哪里。

关于c - 是否保证 memset 会将结构中的填充位清零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8549809/

相关文章:

gcc - Solaris ld : fatal: unrecognized option '--'

c - 字符串C中的奇怪字符

ios - OBJ-C 在无效之前删除 NSData 内容

c++ - 我可以在所有 true/all false 之间合法地 memset bools 结构吗?

c++ - C99 中参数列表为空的函数与 C++98 不兼容?

找不到段错误的位置

c++ - 使用 cinder 和 poco 时出现链接器错误

c - GCC 生成的 64 位代码比 32 位代码慢 3 倍

c - realloc:下一个大小无效;内存复制

c++ - std::exp(-100.0f) == NaN?