#include <string.h>
#include <string>
using namespace std;
typedef struct Test
{
string name;
int a;
}Test;
int main()
{
Test tTest;
memset(&tTest, 0, sizeof(Test));
return 0;
}
程序运行完崩溃!
对内存对象模型的理解实在不够深入。
不能把一个string型的对象memset了,CString对象也是如此。
C++里结构就是类,而不是原生的C结构。用memset会把类里的一些必要数据清零。另外需要注意如果类有虚函数,则就有虚表指针,用memset会把虚函数表指针置为0,这样的类就不会有多态了。