Я хочу напечатать все введенные элементы. Вместо этого мой код дважды печатает последний введенный элемент.Строка string array print последний введенный элемент
Вот мой код:
#include<stdio.h>
void f(struct ar *a);
void d(struct ar *a);
struct ar
{
char name[50];
};
int main()
{
struct ar a;
f(&a);
d(&a);
}
void f(struct ar *a)
{
int i;
for(i=0;i<2;i++)
{
printf("enter name:");
gets(a->name);
}
}
void d(struct ar *a)
{
int i;
for(i=0;i<2;i++)
{
puts(a->name);
}
}
Например:
Входной
name:john
name:kendall
Выход
kendall
kendall
Вы не должны использовать 'gets()' use 'fgets()' вместо этого. Это то, что * gcc * говорит об этом ** предупреждение: функция 'gets 'является опасной и не должна использоваться **. –
Вам нужно создать связанный список. [Связанная структура данных] (http://en.wikipedia.org/wiki/Linked_data_structure) – chengpohi
Так что в ваших циклах вы получаете/печатаете 'a-> name' дважды, не перемещая его нигде. Итак, что вы ожидаете получить? –