Python调用C++接口在分配完内存未调用对象的构造函数的问题

昨晚和同事为这个问题几乎纠结了一夜, C++代码在VS上编译与运行一切正常, 但在同事的Linux上的g++上运行报错, 这bug查找了半天都没找到原因, 原本怀疑是g++版本的问题, 可是同事后面发现原来是Python使用C++的容器类时, 只是为当前容器分配了内存, 但并未对容器进行初始化, 导致运行时出现一系列错误.

针对这个问题, 可以类似C#的写法, 在使用前进行显式的初始化, 如

std::vector vec = std::vector();

或者还可以利用C++11提供的allocator模板类, (虽然我并没查到怎么搞……后面再看看叭, 搬砖先QAQ)

最后, 为同事的耐心与对bug的分析能力点个赞~

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注