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

Указатель на функцию возвращающую указатель - 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 часов 17 минут Как быть?
"Открытия дилетанта" или типизированное выражение с побочными эффектами без функции C++
Все время сталкивался с тем, что надо было сделать побочный эффект (вывести что-то на экран, например) и вернуть в качестве результата значение какого-то типа. Например выражения типа if (a) {cout<<b; return 0;} else return 1; хотелось писать в тернарном синтаксисе, но тогда надо было конструировать вспомогательную функцию: int showAndReturn(int s, int r) {cout<<s; return r;} ........ return...
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
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
14.12.2015, 19:14     Указатель на функцию возвращающую указатель
Нашел ошибку свою.
Вот.
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
39
#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; //Сейчас указатель есть, но функции еще не вызывалось
        ptr = p(pch);  //Вызов функции foo2 использованием указателя p и параметра pch
        a = *ptr;  //Забираем значение из адреса, на который указывает указатель, возвращенный из функции
        std::cout << a << '\n';
        delete ptr; //Чистим память.
    
 
    system("PAUSE");
}
Добавлено через 5 минут

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
а в том, чтобы заставить его правильно работать
он - то правильно работает. Что сказали - то и сделает.

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