我有一个这样定义的链表:
typdef struct _seg
{
int bits[256]; // # of bits in bits[] array = 256
struct _seg *next; // link to the next segment
} seg;
我想知道如何访问这个列表的每个节点内的位数组。如果它是一个普通的int
变量而列表是p
,我就可以用p->bits = 13;
。但是在这种情况下,我不知道如何访问和修改列表。有人能帮帮我吗?
注:(不那么重要)有人知道seg;
在最后做了什么吗?
要访问列表中的节点,必须使用循环遍历所有元素:
seg* p = createList();
seg* current = p; // start at first element
while( current != NULL ){
for( int i=0; i<256; i++ ) {
current->bits[i] = 13; // modify bits inside
}
current = current->next; // go to next element in the list
}
p->bits
是一个256个整数的数组。您可以使用p->bits[0] = 13
访问它。
或一般p->bits[i] = 13
,其中0 <= i < 256
.
typdef struct _seg{
}凹陷;
…
可以使用seg
来定义该结构类型的变量
seg SomeName;
不需要struct _seg someName;