新运算符从已分配的缓冲池中获取内存

时间:2013-03-14 09:47:33

标签: c++ memory-leaks new-operator

我添加了一个新类,并使用new创建了它的对象。

我看到程序因此崩溃了。在进一步调试时,我发现有一个现有的类,它是使用Buffer Pool中的placement new分配的。

那么我的new运算符很可能不知道这个并从该缓冲区中分配内存?

如何确认此问题以及如何避免此问题无法从该池中分配?

代码片段: 在分配池之前调用我的代码。

使用池的地方

// Initialize buffer pool for path pbject buffers

    UINT32 size = CHOP_MAX_PATH_NUM * sizeof(Buffer<pathElement>);

/* Create the path manager for each channelized sonet line */

    for (UINT8 lineId = 0; lineId < maxLines; lineId++) {
       /* Get the max STS Paths for this line */
       chanSonetLineMgr[lineId] =
          new ChopOC48SonetPathMgr(
              bay, lineId, &pathElementPool,
              NULL, dynamic_cast<SonetLineNg *>(linesNg[lineId]),
              NULL, //Alert: When Chop Path Mgr is ready

0 个答案:

没有答案