我有动态分配包含std::map的结构的代码。这在Mac和Linux上运行良好,但在Windows上中止程序(用VC 2017编译)。知道为什么会这样吗?
分部结构定义:
typedef struct trie_node_temporary_struct {
...
std::map<char, struct trie_node_temporary_struct*> child_node_map;
} trie_node_temporary_struct;
在函数中:
*node = (struct trie_node_temporary_struct*)malloc(sizeof(struct trie_node_temporary_struct));
if (*node == NULL)
{
...
}
memset(*node, 0, sizeof(struct trie_node_temporary_struct));
// Initialize map
(*node)->child_node_map = std::map<char, struct trie_node_temporary_struct*>(); // <-- aborts here