2013-09-27 97 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