Функция как член структуры - C (СИ) (69874)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Столкнулся с проблемой: не могу объявить функцию как член структуры. Компилятор ошибок не выдаёт, но при запуске программа крашится. Подскажите, в чём ошибка (код ниже).
#include <stdio.h>
#include <stdlib.h>
 
struct base
{
    void (*enter)(void);
};
 
void enter(void)
{
    int x;
    scanf("%d", &x);
}
 
int main()
{
    struct base a;
    a.enter();
    return 0;
}

Решение задачи: «Функция как член структуры»

textual
Листинг программы
a.enter = enter;

Объяснение кода листинга программы

  1. В данном коде происходит объявление и инициализация переменной a типа struct с полями enter и some_value.
  2. Значение поля enter устанавливается равным функции enter.
  3. Значение поля some_value не указывается и остается неопределенным.

Оцени полезность:

13   голосов , оценка 4.231 из 5
Похожие ответы