3.9.1 [basic.fundamental]中的措辞经过精心设计,允许使用unsigned char访问未初始化的数据,以便memcpy等可以用C ++编写而不会出现未定义的行为
这是什么意思?为什么要访问未初始化的数据?
答案 0 :(得分:1)
当您复制包含填充的struct
时,memcpy
也会复制填充。通常,填充是未初始化的。
答案 1 :(得分:0)
这意味着仍然可以访问未由对象构造函数初始化的内存(这是C ++的用途)。我们可以使用 unsigned char (或byte)来指向原始内存块。
对象是您应该处理的对象,但您仍然可以按原样查看内存。