я получаю ОТСУТСТВИЕ СЕГМЕНТАЦИИ (ОСНОВНОЕ ЯДРО ??) // Что это значит ??
Переменная, которая нарушает доступ к памяти, приводит к ошибке сегментации.
scanf("%d",obj->a);
int *a;
- член структуры a
является неинициализированным указателем, но пытается передать данные в местоположение, на которое он указывает.Причиняя вам ошибку сегментации.
obj->a = malloc(sizeof(int)) ;
Теперь вы можете взять ввод для a
местоположения наведения.
scanf("%d", &(obj->a) );
С типом операций ввода, которые вы выполняете, определение структурыне нужны необработанные указатели -
struct abc{
int *a; // Change this to int a; or make a point to a valid memory location
char *ch[10]; // Change this to char ch[10]; or initialize it with pointers pointing to a valid memory locations
// and then take input on to pointer pointing location.
};
Обратите внимание на разницу между ними -
int a ; // Can take input directly to "a"
int *a ; // First "a" must point to a valid memory location that can hold an int
// Then, can take input to "a" pointing location