C++ std::结构中的列表导致内存冲突错误

C++ std::结构中的列表导致内存冲突错误,c++,list,struct,std,C++,List,Struct,Std,我正在尝试在结构中使用列表,我有如下所示: typedef struct _MS { DWORD id; std::list<std::wstring> titles; } MS; typedef结构 { 德沃德id; std::列表标题; }MS; 但是当我尝试使用它时,我遇到了一些问题 当我在运行时的调试器“titles=0xcdcdcd”下查看它时,以及当我尝试调用\u iterator=MS.titles.begin()时,它会因内存访问冲突而失败 我做错

我正在尝试在结构中使用列表,我有如下所示:

typedef struct _MS
{
    DWORD id;
    std::list<std::wstring> titles;
} MS;
typedef结构
{
德沃德id;
std::列表标题;
}MS;
但是当我尝试使用它时,我遇到了一些问题

当我在运行时的调试器“titles=0xcdcdcd”下查看它时,以及当我尝试调用
\u iterator=MS.titles.begin()
时,它会因内存访问冲突而失败


我做错了什么?

MS编译器使用值
0xcdcdcdcd
来标记已删除的内存


您的问题可能不在于
std::list
,而在于使用指向已删除对象的指针。

我已在结构分配给mystruct=(MS*)malloc(sizeof(MS))的位置设置了断点;列表仍然有这个值,有什么不对的吗?一个包含
std::list
的结构不能(轻松地)使用
malloc
进行分配。您应该使用
new MS
,这样列表构造函数就会被执行。啊,就是这样:)愚蠢的旧习惯。非常感谢Bo!