Я новичок в программировании на С. У меня проблемы с использованием функции printf. Когда я запускаю следующую программу, я получаю ошибку сегментации. Пожалуйста, скажите мне, что я делаю неправильно. Что означает ошибка сегментации?Почему я получаю ошибку сегментации при использовании printf?
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
char *name;
int rollnum;
int marks;
}
student_data;
int main()
{
student_data stud1;
student_data *ptr;
ptr = (student_data *)malloc(sizeof(student_data));
printf("\n NAME OF THE STUDENT: ");
scanf("%s", &ptr -> name);
printf("\n ROLL NUMBER OF THE STUDENT: ");
scanf("%d", &ptr -> rollnum);
printf("\n MARKS OF THE STUDENT: ");
scanf("%d", &ptr -> marks);
printf("\nPRINTING ROLL NUMBER %d", ptr -> rollnum);
printf("\nPRINTING MARKS %d", ptr -> marks);
printf("\nPRINTING NAME %s", ptr -> name);
}
-: выход: -
имя студента: ajish
Рулон КОЛИЧЕСТВО СТУДЕНТА: 2
отметками Слушатель: 60
ПЕЧАТЬ Рулон НОМЕР 2 ПЕЧАТНЫЕ МАРКИ 60 Ошибка сегментации
Вам повезло: строка «ajish» была написана в неизвестном месте внутри вашей памяти компьютера, и компьютер не взорвался. В прошлый раз, когда я попробовал что-то подобное, мой компьютер начал идти к окну и выбрался, если бы я его не остановил :-) – pmg
@pmg :-)) http://xkcd.com/293/ – cnicutar
@pmg +1 за этот хороший комментарий! – GETah