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

необходимо объявить массив указателей на функцию - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
27.03.2012, 13:56     необходимо объявить массив указателей на функцию #1
которая (например) ничё не принимает и возвращает, допустим, значение типа int.
Спасибо, кто откликнется.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
27.03.2012, 14:21     необходимо объявить массив указателей на функцию #2
C
1
int (*arr[10])(void);
но лучше использовать typedef
C
1
2
3
typedef int (*func_ptr_t)(void);
// ...
func_ptr_t arr[10];
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
27.03.2012, 14:33  [ТС]     необходимо объявить массив указателей на функцию #3
Разберём первый случай;
arr есть массив из десяти указателей на функцию ничё не принимающую и возвращающую int; это понятно. А если так:
p есть указатель на массив из трёх указателей на функцию ничё не принимающую и возвращающую int; будет выделена память под три указателя?

C++
1
2
3
4
int main () {
 int(*(*p)[3])();
 return 0;
}
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
27.03.2012, 17:08     необходимо объявить массив указателей на функцию #4
Цитата Сообщение от kravam Посмотреть сообщение
А если так:
p есть указатель на массив из трёх указателей на функцию ничё не принимающую и возвращающую int; будет выделена память под три указателя?
Под один. p не массив, а простой указатель(фактически это "указатель на указатель" на первый элемент массива).
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
27.03.2012, 17:13  [ТС]     необходимо объявить массив указателей на функцию #5
Это я понял, p будет указывать на первый элемент массива. А под массив память будет выделена?
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
27.03.2012, 17:17     необходимо объявить массив указателей на функцию #6
C
1
2
int (*arr[10])(void);     // здесь выделяется память под массив
int (*(*p)[3])() = &arr;  // здесь только под указатель
Yandex
Объявления
27.03.2012, 17:17     необходимо объявить массив указателей на функцию
Ответ Создать тему
Опции темы

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