我们有一个类来表示一个非常大的应用程序中的列表:
CSMLNode
{
CSMLNode *pChild;
CSMLNode *pSibling;
CSMLNode()
{
pChild = NULL;
pSibling = NULL;
}
}
为了优化,创建的节点对象保存在一个池中,并在应用程序的生命周期内重复使用。仅当节点对象的数量超过特定计数时才释放节点对象。当节点对象被释放到池中或从池中取出时,pChild
和的值pSibling
不设置为 NULL。我们怀疑这会在应用程序中造成崩溃。
我打算将 pChild 和 pSibling 的值设置为0xDDDDDDDD
,如果从池中获取节点对象时其值不为 NULL 。我的意图是强制使应用程序崩溃,当pChild
或pSibling
指针被访问时,没有设置适当的对象指针,pChild
以及pSibling
从池中获取节点对象之后。
这会按我的预期工作吗?如果没有,我应该为强制访问冲突提供什么指针值。
我已启用整页堆以尽早获取访问冲突。