C 测试损坏的列表

C 测试损坏的列表,c,linked-list,C,Linked List,假设我在一个易变的环境中收到一个列表,其中tail元素仅部分填充了可访问的项;此外,传递/删除/删除元素是一个非常合适的解决方案 所以 是否有方法测试并通过/删除此列表元素 C不提供测试内存位置是否可访问的内置方法。无法检查next->A是否可用,原因与无法检查指针是否“悬空”相同 解决这个问题的方法是添加一个间接级别:列出始终可用的“信封”对象。每个信封包含一个指向实际对象的指针,以及一个指示对象可访问性的标志。通过这种方式,列表的提供者将能够独立于数据对象本身操作标志,而不会干扰列表的内容:

假设我在一个易变的环境中收到一个列表,其中tail元素仅部分填充了可访问的项;此外,传递/删除/删除元素是一个非常合适的解决方案

所以


是否有方法测试并通过/删除此列表元素

C不提供测试内存位置是否可访问的内置方法。无法检查
next->A
是否可用,原因与无法检查指针是否“悬空”相同

解决这个问题的方法是添加一个间接级别:列出始终可用的“信封”对象。每个信封包含一个指向实际对象的指针,以及一个指示对象可访问性的标志。通过这种方式,列表的提供者将能够独立于数据对象本身操作标志,而不会干扰列表的内容:


在C语言的上下文中,“易失性环境”、“可访问元素”、“转储元素”甚至意味着什么?在模糊术语列表中添加“仅部分填充”。因此我正在解析数据包——数据包是“易失性”的,因为它们有一个固定的格式,但位会翻转、损坏,数据包可能不完整,等等。转储:我只是递归删除元素并设置为空。你真的需要改写问题,添加更多的上下文和代码。
。。。从某种意义上说,它们有一个设置的格式,但位被翻转、损坏,数据包可能不完整
解析数据包的目的是处理这些情况:将字段设置为默认值(或将指针设置为NULL),或设置标志以指示数据包内的字段无效或不存在。真棒——谢谢。如果有这样的测试,那将是理想的。我在代码中有一个更深层的打印语句,表明添加这样一个标志可能有一个入口点,尽管整个信封可能超出范围,请欣赏否定的肯定!
next->A // is unaccessible
next->B // is accessible

if (next->A) // evaluates to true