假设我在不稳定的环境中收到一个列表,其中尾部元素仅部分填充了可访问的项目;此外,传递/删除/删除元素是一个非常合适的解决方案。
所以,
next->A // is unaccessible
next->B // is accessible
if (next->A) // evaluates to true
是否有测试和传递/删除此列表元素的方法?
最佳答案
C 不提供测试内存位置是否可访问的内置方法。您无法检查 next->A
是否可用,原因与您无法检查指针是否“悬空”的原因相同。
解决这个问题的方法是添加一个间接级别:制作一个始终可用的“信封”对象列表。每个信封都有一个指向实际对象的指针,以及一个指示对象可访问性的标志。这样,列表的提供者将能够独立于数据对象本身来操作标志,而不会干扰列表的内容:
关于c - 测试损坏的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46223367/