C语言中的2元素数组列表

C语言中的2元素数组列表,c,arrays,list,C,Arrays,List,我试图得到一个索引的整数列表,也就是说,我把它放在aab中,我得到97,98,我希望这些整数都像在一个正则数组中一样被索引 typedef struct element { struct element *next; int value; int index; } listElements; 问题是当我分配指针->索引=整数时;整数+然后printfit,值列的打印方式与aab一样,但索引列的打印方式是2 0 1。我哪里出错了 编辑:更多代码 int addToL

我试图得到一个索引的整数列表,也就是说,我把它放在aab中,我得到97,98,我希望这些整数都像在一个正则数组中一样被索引

typedef struct element {   
    struct element *next;
    int value;
    int index;
} listElements;
问题是当我分配
指针->索引=整数时;整数+
然后
printf
it,值列的打印方式与
aab
一样,但索引列的打印方式是
2 0 1
。我哪里出错了

编辑:更多代码

int addToList ( listElements *list, int character, int integer ) {
    listElements *pointer, *element;
    pointer = list;

    while ( pointer -> next != NULL ) {
        pointer = pointer -> next;
    }

    element = ( listElements* ) malloc ( sizeof ( listElements ) );
    element -> value = character;
    element -> index = integer;
    integer++;
    element -> next = NULL;
    pointer -> next = NULL;

    return integer;
}

void printList ( listElements *list ) {
    listElements *pointer = list;

    while ( pointer != 0 ) {
        printf ( "%d %d\n", pointer -> value, pointer -> index );
        pointer = pointer -> next;
    }
}


int main () {

    char character;

    first = ( listElements* ) malloc ( sizeof ( listElements ) );
    first -> value = character = getchar ();
    first -> index = 0;
    first -> next = NULL;


    while ( ( character = getchar () ) != 'Q' ) {
        first -> index = addToList ( first, character, first -> index );
    }

    printList ( first );

    return 0;
}
索引不正确(2 0 1而不是0 1 2。如果这是您要求的),因为您正在这样做:

first -> index = addToList ( first, character, first -> index );
您正在将返回值分配给第一个元素的索引

将其更改为以下内容:

int index = 1; // declare at right position in main.
while ( ( character = getchar () ) != 'Q' )
{
    index = addToList ( first, character, index );
}

一点也不知道你在问什么。什么是“aab”?请显示相关代码。显示构成列表的代码。您的代码不显示打印。您的打印值在哪里?您是否正在尝试编写动态大小的列表?阅读链接列表,我想这已经回答过一次了(至少):如果字符是“a”,你希望索引是97吗?谢谢!对我来说仍然很奇怪,它在一个移位之前正确地分配了值,但至少现在它可以工作了。