2013-09-27 98 views
0

如果我有:Ç - 上指針指數爲指針

struct X { 
    int a; 
    struct X* next; 
} 

struct X** ptr; 

PTR與結構X的地址初始化,並且每個結構X的 next指向另一個結構X.什麼會得到一個通過使用

ptr[i] // where i is unsigned int 

這裏是我的問題來源:(它的鏈接代碼的SELinux):code

類型定義於:types

+1

[C - 索引應用於指針指針]可能的重複(http://stackoverflow.com/questions/19043395/c-index-applied-to-pointer-to-指針) – tristan

+0

waight,你究竟是什麼問?如何訪問下一個?或者,你的問題真的只是ptr [i]的執行價值是什麼? – dhein

+0

和代碼中究竟代碼適合您的示例代碼?我無法找到它 – dhein

回答

0

你會得到垃圾。對於p[i]中的指針運算來說,你需要在內存中(在一個數組中)一個接一個地存儲對象(在本例中是指向結構的指針)。

在你的情況下,你需要遵循next指針i次。

struct X *p = *ptr; 
for (j = 0; j < i; ++j) p = p->next; 
/* now p points to the i-th struct */ 

如果結構是實際上在陣列中,這等同於

struct X *p = (*ptr)[i]; 

但在這種情況下,next將是無用的。

+0

在那個代碼中,'htable'確實是一個指針數組。它被分配在第35行。 –

-1

ptr[i]將指向i指針ptr。假設ptr有一排i指針,這些指針被假定爲指向X類型的元素。

+0

親愛的downvoter ....請解釋我爲什麼你投了票。從我的角度來看,我所說的絕對正確。所以如果有任何錯誤的陳述,請解釋我(或任何其他人)什麼是不正確的,因爲我想提高我的知識。 (可能這就是爲什麼我們都在這裏) – dhein