2017-09-14 3 views
1

揮発性の環境でリストを受け取ったとします。ここでtailエレメントは部分的にアクセス可能なアイテムで満たされています。さらに、要素の渡し/削除/削除は完全に適切な解決策です。壊れたリストのテスト

ので、

next->A // is unaccessible 
next->B // is accessible 

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

は、このリストの要素をテストし、削除/合格する方法はありますか?

+1

要素をダンプすることはCの文脈でさえ意味しますか? –

+2

難読化された用語のリストに「部分的に埋められた」だけを追加します。 – WhozCraig

+0

私はパケットを解析しています - パケットは設定されたフォーマットを持っているという意味では「揮発性」ですが、ビットが反転したり、破損したり、パケットが不完全であるなど、パケットが不完全である可能性があります。 NULLにする – bordeo

答えて

1

Cは、メモリロケーションがアクセス可能であるかどうかにかかわらず、組み込みのテスト方法を提供しません。ポインタが「ぶら下がっている」かどうかを確認できないのと同じ理由で、next->Aが利用可能かどうかをチェックすることはできません。

これに対処するには、レベルの間接参照を追加します。常に利用可能な「封筒」オブジェクトのリストを作成します。各エンベロープは、オブジェクトのアクセシビリティを示すフラグとともに、実際のオブジェクトへのポインタを保持します。リストの提供者は、リストの内容を乱すことなく、独立したデータオブジェクト自体のフラグを操作することができるだろう。この方法:「揮発性環境」、「アクセスの要素を」、 "何

List of envelopes

+0

素晴らしい - ありがとう。そのようなテストがあれば、それは理想的だったでしょう。私は、エンベロープ全体が範囲外であるかもしれないが、そのようなフラグを追加するためのエントリポイントがあるかもしれないことを示すコードでより深く印刷ステートメントを持っている、負の肯定を感謝! – bordeo