0

我有一个这样定义的链表:

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;。但在这种情况下,我不知道如何获取和修改列表。有人可以帮我吗?

PS(不那么重要)有谁知道最后的seg;作用是什么?

4

2 回答 2

1

要访问列表中的节点,您必须使用循环来迭代所有元素:

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
}
于 2013-05-03T13:59:36.090 回答
1

p->bits是一个 256 个整数的数组。您可以使用p->bits[0] = 13.

或者一般来说p->bits[i] = 13在哪里0 <= i < 256

typdef struct _seg { ...
}seg;

有了这个,您可以使用segas定义此结构类型的变量

seg SomeName;

不需要struct _seg someName;

于 2013-05-03T13:50:58.987 回答