Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ По заданным матрицам A, B получить матрицу АВ-ВА http://www.cyberforum.ru/cpp-beginners/thread1612610.html
Помогите пожалуйста. Дано: две квадратные матрицы А , B. Получить матрицу АВ-ВА. Нахождение элемента матрицы-произведения оформить как функцию.
C++ В массиве В поменять первый отрицательный и последний положительный элементы Сформировать одномерный массив В из максимальных элементов столбцов прямоугольной матрицы A. В массиве В поменять первый отрицательный и последний положительный элементы. (массивы задать динамически)... http://www.cyberforum.ru/cpp-beginners/thread1612608.html
C++ Вычислить сумму и число положительных элементов матрицы, находящихся над главной диагональю (класс "Matrix")
Вычислить сумму и число положительных элементов матрицы A, находящихся над главной диагональю. Решение через конструктор. Добавлено через 11 часов 46 минут Кто может помочь? Добавлено через 6...
"Открытия дилетанта" или типизированное выражение с побочными эффектами без функции C++
Все время сталкивался с тем, что надо было сделать побочный эффект (вывести что-то на экран, например) и вернуть в качестве результата значение какого-то типа. Например выражения типа if (a)...
C++ Установить в ноль с седьмого по двенадцатый биты включительно в двоичном представлении целого значения А http://www.cyberforum.ru/cpp-beginners/thread1612584.html
Написать программу в которой необходимо установить в ноль с седьмого по двенадцатый биты включительно в двоичном представлении определенного целого значения А. Помогите пожалуйста, Заренее спасибо.
C++ New placement Что это за юмор такой? #include <iostream> #include <new> using namespace std; int main() { double *a= new double{200}; int *b = new(a) int{256}; подробнее

Показать сообщение отдельно
daslex
1283 / 527 / 109
Регистрация: 02.08.2011
Сообщений: 2,749
14.12.2015, 17:55
Цитата Сообщение от tst Посмотреть сообщение
daslex, то есть строка 15 нам не нужна здесь?
Она нужна если в коде больше чем одна функция и нужна не инициализация указателя адресом функции, а работа с указателем, показывающем на разные функции.

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
 
/*ФУНКЦИЯ ВОЗВРАЩАЕТ УКАЗАТЕЛЬ НА int*/
int *foo(const char* ){
   int *pch = new int;
   *pch = 123;
   return pch;  //Возвращаем указатель
}
 
/*ФУНКЦИЯ ВОЗВРАЩАЕТ УКАЗАТЕЛЬ НА int*/
int *foo2(const char* ){
   int *pch = new int;
   *pch = 525;
   return pch;  //Возвращаем указатель
}
 
int main()
{
   const char* pch = "HELLO"; //Что-то, что принимает функция
 
 int* (*p)(const char*); //Инициализируем указатель, указывающий на функцию с одним параметром const char*, возвращающую указатель на int
  p = foo;   //Если не инициализировать, то простое присваивание
 
  int *ptr = p(pch);  //Нужно для корректной очистки.
  int a = *ptr;  //Забираем значение из адреса, на который указывает указатель, возвращенный из функции
  std::cout << a << '\n';
  delete ptr; //Чистим память.
 
  /////////////////////////
  p = foo2; //Сейчас указатель есть, но функции еще не вызывалось
  p(pch);  //Вызов функции foo2 использованием указателя p и параметра pch
  a = *ptr;  //Забираем значение из адреса, на который указывает указатель, возвращенный из функции
  std::cout << a << '\n';
  delete ptr; //Чистим память.
 
 
 system("PAUSE");
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru