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

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

Восстановить пароль Регистрация
 
MickeyBlueEyes
Студент
 Аватар для MickeyBlueEyes
120 / 131 / 12
Регистрация: 07.04.2011
Сообщений: 503
08.06.2013, 16:31     Указатель на ф-цию в структуре #1
Привет всем, почему если объявить структуру в виде указателя и присвоить указателю на ф-цию функцию, то будет ошибка, а если объявить структуру не как указатель, то работает всё нормально.
Пишу так:
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;
}
Есть какое нибудь решения задачи? если объявлять указатель сразу после инициализции структуры?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
08.06.2013, 16:40     Указатель на ф-цию в структуре #2
Указатель указывает куда-то. Как думаете, куда он будет указывать, если он глобальный и не инициализированный? Правильный ответ под спойлером: [никуда, в NULL]. Вот так:
C++
1
2
3
struct Route {
    //...
} *route;
вы объявляете именно такой указатель.
Убежденный
Системный программист
 Аватар для Убежденный
14173 / 6188 / 981
Регистрация: 02.05.2013
Сообщений: 10,295
Завершенные тесты: 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     Указатель на ф-цию в структуре
Ответ Создать тему
Опции темы

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