は、私はそれがどのように動作するかを理解しようとしていますCリンクリストから削除する(ポインタはポインタに)
void
remove_ll(struct link_list **head, int key)
{
struct link_list **cur;
for(cur = head; *cur;) {
struct link_list *entry = *cur;
if (entry->key == key) {
*cur = entry->next;
free(entry);
} else {
cur = &entry->next;
}
}
}
リストから要素を削除し、C言語で以下のコードを発見しました。
これは私の考えです。
List example:
0x1f7d018 0x1f7d038 0x1f7d078
+++++++++++++++++++ +++++++++++++++++++ +++++++++++++++++++
|0x2174010: | |0x1f7d070: | |0x1f7d090: |
|key = 10 | |key = 34 | |key = 90 |
|&next = 0x1f7d038|++++>|&next = 0x1f7d078|++++>|&next = NULL |
| | | | | |
+++++++++++++++++++ +++++++++++++++++++ +++++++++++++++++++
After deleting the value 34
0x1f7d018 0x1f7d038
+++++++++++++++++++ +++++++++++++++++++
|0x2174010: | |0x1f7d090: |
|key = 10 | |key = 90 |
|&next = 0x1f7d038|++++>|&next = NULL |
| | | |
+++++++++++++++++++ +++++++++++++++++++
これは間違いありませんか?
実行して参照してください。 – kaylum
私はいくつかのひどいブレーススタイルを見ましたが、これはケーキを取ります。 – EOF