错误分配的管理不是很困难。下面是一个示例(请参见清单 3):
清单 3. 未初始化的指针
void f2(int datum)
{
int *p2;
/* Uh-oh! No one has initialized p2. */
*p2 = datum;
...
}
关于此类错误的好消息是,它们一般具有显著结果。在 AIX® 下,对未初始化指针的分配通常会立即导致 segmentation fault 错误。它的好处是任何此类错误都会被快速地检测到;与花费数月时间才能确定且难以再现的错误相比,检测此类错误的代价要小得多。
在此错误类型中存在多个变种。free() 释放的内存比 malloc() 更频繁(请参见清单 4):
清单 4. 两个错误的内存释放
文章来源于领测软件测试网 https://www.ltesting.net/