C语言中的2元素数组列表
我试图得到一个索引的整数列表,也就是说,我把它放在aab中,我得到97,98,我希望这些整数都像在一个正则数组中一样被索引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
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吗?谢谢!对我来说仍然很奇怪,它在一个移位之前正确地分配了值,但至少现在它可以工作了。