Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MickeyBlueEyes
Студент
 Аватар для MickeyBlueEyes
120 / 131 / 12
Регистрация: 07.04.2011
Сообщений: 503
#1

Указатель на ф-цию в структуре - C++

08.06.2013, 16:31. Просмотров 223. Ответов 3
Метки нет (Все метки)

Привет всем, почему если объявить структуру в виде указателя и присвоить указателю на ф-цию функцию, то будет ошибка, а если объявить структуру не как указатель, то работает всё нормально.
Пишу так:
C++
1
2
3
4
5
6
7
8
9
struct Route{
  void (*start)(char *);
} * route;
 
int main(){
   route -> start = test; //Ошибка сегментирование при запуске программы
   route.start = test; //Работает нормально
return 0;
}
Есть какое нибудь решения задачи? если объявлять указатель сразу после инициализции структуры?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2013, 16:31     Указатель на ф-цию в структуре
Посмотрите здесь:

Как правильно вызвать пользовательскую ф-цию C++
C++ Указатель на указатель - разница способов
Вопрос по программе. Нужно протабулировать ф-цию C++
Map и указатель на ф-цию C++
Описать математическую ф-цию C++
Указатель на ф-цию член класса C++
Включить в программу только одну ф-цию из библиотеки C++
C++ Определить ф-цию, нахождения векторного произведения векторов трёхмерного пространства
Как описать в структуре строку не через указатель C++
C++ Разработать ф-цию типа float
Указатель в структуре C++
Указатель на функцию в структуре C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1242 / 991 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
08.06.2013, 16:40     Указатель на ф-цию в структуре #2
Указатель указывает куда-то. Как думаете, куда он будет указывать, если он глобальный и не инициализированный? Правильный ответ под спойлером: [никуда, в NULL]. Вот так:
C++
1
2
3
struct Route {
    //...
} *route;
вы объявляете именно такой указатель.
Убежденный
Системный программист
 Аватар для Убежденный
14639 / 6600 / 1045
Регистрация: 02.05.2013
Сообщений: 10,874
Завершенные тесты: 1
08.06.2013, 16:40     Указатель на ф-цию в структуре #3
C++
1
2
3
struct Route{
 void (*start)(char *);
} route;
Объявление структуры Route и создание ее экземпляра route.
Выражение "route.start = test" корректно, т.к. переменная route проинициализирована.

C++
1
2
3
struct Route{
 void (*start)(char *);
} * route;
Почти то же самое, только теперь route - это указатель. Неинициализированный.
Попытка выполнить выражение "route->start = test" приведет к разыменованию
неинициализированного указателя.
MickeyBlueEyes
Студент
 Аватар для MickeyBlueEyes
120 / 131 / 12
Регистрация: 07.04.2011
Сообщений: 503
08.06.2013, 16:42  [ТС]     Указатель на ф-цию в структуре #4
Спасибо большое, я думал что сразу же он и будет мне указывать на структуру мою ))
Yandex
Объявления
08.06.2013, 16:42     Указатель на ф-цию в структуре
Ответ Создать тему
Опции темы

Текущее время: 00:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru