У меня есть код, который динамически выделяет структуру, содержащую 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