在C ++中,此代码正确吗?
#include <cstdlib>
#include <cstring>
struct T // trivially copyable type
{
int x, y;
};
int main()
{
void *buf = std::malloc( sizeof(T) );
if ( !buf ) return 0;
T a{};
std::memcpy(buf, &a, sizeof a);
T *b = static_cast<T *>(buf);
b->x = b->y;
free(buf);
}
换句话说,是否是*b一个寿命已经开始的物体?(如果是这样,它什么时候开始的?)
沧海一幻觉
慕村9548890
相关分类