【发布时间】:2010-12-28 09:38:40
【问题描述】:
我在 c 中有列表指针:
list<int> * pointer = (list<int> *)malloc(sizeof(list<int>));
当我尝试时:
pointer->push_back(1);
我得到错误,因为 malloc 没有调用列表构造函数。我知道在 C++ 中这样做:
list<int> * pointer = new list<int>();
但我在 c 中需要这个?
有人知道解决办法吗?
【问题讨论】:
-
这毫无意义。 C 甚至没有类或模板。
-
std::list<>是 C++ 独有的特性,而不是 C。使用malloc有点破坏了在内存管理方面拥有标准容器类的意义。如果需要使用std::list<>,则必须使用C++。 -
C中没有办法使用STL
-
来吧,伙计们:这是一个菜鸟问题,但没有理由用反对票来打击这个家伙,是吗?
-
@Chris:无论如何,在这种情况下,您需要用 C++ 构建包装器。