Queue queue = createQueue(); //queue to store int values
Node *node = getNode(8);
enQueue(queue, (int)node);//storing an address in the int
..... some other statements ....
Node *root = (Node *) deQueue(queue);//typecasting an int to address
Node *left = root->left;
在上面的代碼中,隊列可以存儲整數值,同時地址被存儲分配給它。 它可以產生任何問題?可以將類型轉換爲整數嗎?
在int中存儲地址可能會有問題的情況或任何架構是什麼?
請舉一些例子。
還有'uintptr_t',都在'stdint.h' – 2012-07-29 11:29:53
+1,我從來不知道'intptr_t' /'uintptr_t'。 – orlp 2012-07-29 11:34:19
沒錯。問題中描述的方法不是一個好主意。最好使用輔助數組的Node對象,並將Node對象的索引存儲在隊列中(假設無法更改用於管理隊列類型實例的接口)。 – 2012-07-29 11:34:44