2015-02-20 2 views
0

Я написал небольшой код, чтобы получить информацию о количестве учащихся «n». Но после запуска программы, я получаю segfault. Пожалуйста, найдите код ниже.Получение ошибки сегментации при вводе элементов структуры во время выполнения

struct students 
{ 
    char name[20]; 
    int age; 
    int id; 
}student[100]; 
int main() 
{ 
     int count; 
     int no_students; 
     printf("Enter no of students"); 
     scanf("%d",&no_students); 
     for (count = 1 ; count <= no_students ; count++) 
     { 
      printf("Enter the details for student%d\n",count); 
      printf("Name:"); 
      scanf("%s",student[count].name); 
      printf("Age:"); 
      scanf("%d",student[count].age); 
      printf("ID:"); 
      scanf("%d",student[count].id); 
     } 
     return 0; 
} 

[email protected]:/home/renga/C_code# ./nike 
Enter no of students3 
Enter the details for student1 
Name:renga 
Age:12 
Segmentation fault 
+0

Его stackoverflox вопрос :) – YuKYuK

ответ

0

У вас проблема, пропущенный оператор ссылки в scanf.

 printf("Age:"); 
     scanf("%d",&(student[count].age)); 
     printf("ID:"); 
     scanf("%d",&(student[count].id)); 
+0

и массивы 0 на основе, поэтому ваш цикл выключен с помощью одного – Dan

0

Это может быть неправильная группа, которая может задать C-язык помощи/вопрос синтаксиса. Я бы порекомендовал читать хорошую C-языков программирования языка программирования ex: http://www.cprogramming.com/tutorial/c-tutorial.html

Сказав это, проблема в том, что вы пытаетесь неправильно прочитать свой тип данных int (возраст & id). Вы должны прочитать значения в адрес переменных, как показано ниже ...

scanf("%d",&student[count].age); 
Смежные вопросы