[英]void * pointing to void * in a list
我有一個像這樣的清單:
void * head = [void * a] --> [void * b] --> [void * b] --> NULL
給定void * head
,我如何遍歷列表?
每個void *
指向另一個void *
,列表中的最后一項指向NULL
。
我認為我需要使用void **
,但我不確定。 列表中的每個項目都不在連續內存中。
我有這樣的清單[...]
這不完全是一個列表-它是一個多級指針,在編譯時級別未知。
我想我需要使用
void **
,但我不確定
是的,你是對的! 您可以一次取消引用指針的一級。
您可以執行以下操作:
while
循環,當head
為NULL
時結束 void **next
並為其分配head
head
,如下所示: head = *next
head
為NULL
。 循環的每次迭代都會刪除另一個間接級別,直到到達最終指針為止。
void *node = head;
while(node) {
// do stuff with the node
node = *((void**)node);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.