为什么运行结果总是3221225477呀
我尝试修改了很多次memset,心想是不是没初始化,但还是不行
【相关推荐】
当结构体含有非基本类型成员时,应避免使用memset,应在结构体中手动定义清理函数或对成员进行单独清理
struct STU
{
string str;
void clear()
{
str.clear();
}
};
STU stu;
stu.str = "adfa";
stu.clear();
疑惑: 虽然使用memset会破坏结构体中类成员结构,但是当结构体中存在std::string时,使用memset后再对结构体string成员赋值却不会引发程序崩溃,其中的原因是什么?编译器对string的memset有特殊处理?