413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
|
||||||
1 | ||||||
Указатели на функции02.11.2013, 23:49. Показов 592. Ответов 6
Метки нет (Все метки)
Доброго всем времени суток.Помогите разобраться с указателями на функции.Вот мой код
Добавлено через 1 минуту Кампилятор ошибок не выдает,а программа завершается аварийно.
0
|
02.11.2013, 23:49 | |
Ответы с готовыми решениями:
6
Указатели на функции. Указатели на функции как формальные параметры у функциях высшего уровня Указатели на массивы. Указатели и функции Указатели и массивы. Указатели и функции Используя указатели на функцию вычислить значение функции в точке х в соответствии с выбором функции |
Комп_Оратор)
|
||||||
03.11.2013, 00:17 | 2 | |||||
0
|
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
|
|||||||||||||||||||||
03.11.2013, 01:19 [ТС] | 3 | ||||||||||||||||||||
Да она не вылетает,но и не работает.Вот мой первоначальный вариант упрощенный.Все работает правильно.Это упрощенный код,а в самом коде много проверок и противоречивых с указателями работает,но при попытке собрать все проверки в одну функцию не получается.Как только инициализирую указатели программа вылетает.Если это не возможно тогда буду пробовать перегружать,но код получится гораздо больше.
как будет проводится проверка на
0
|
Комп_Оратор)
|
|
03.11.2013, 01:33 | 4 |
Genn55, извините но просто не успеваю просмотреть логику. Налету увидел, что передаёте указатели, а значения по умолчанию - логические. Более того в месте вызова функций через указатели пытаетесь использовать сами указатели... Уверенно полагая что параметр в объявлении (в формальном параметре) передастся в точке вызова. А ведь Вы его передаете в первой переменной int a. Вот и вызывайте через объявленное в объявлениии указателя имя, но с фактическим параметром. Посмотрите что я написал.
А лучше либо typedef'ом эти имена упакуйте или просто напишите две версии функции используя перегрузку (с 3-мя и 5-ю) параметрами. Легче будет выглядеть. зы а уж почему работает не так, то это не к вопросу о указателях на функции, а о логике самой программы. Посмотрите, что не не так или объясните, что хотите сделать.
1
|
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
|
|
03.11.2013, 02:03 [ТС] | 5 |
IGPIGP я же только начинающий!С 3 или 5 я уже писал -получается,а вот с указателями буксую.А нужно ввести число с клавиатуры больше 0,но меньше 6.Если оно в этом интервале вывести на экран,если нет выдать сообщение об ошибке и подсказку и предложить повторить ввод.Если можно простенький примерчик с объяснением.Истина где то рядом не хватает самой малости.Спасибо.
0
|
Комп_Оратор)
|
||||||
03.11.2013, 02:40 | 6 | |||||
Начните с указателей на int. Указатели на функции это ещё рановато, с параметрами по умолчанию. Новичок такое придумать может, конечно, но.. Поступайте как знаете.
0
|
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
|
|
03.11.2013, 03:08 [ТС] | 7 |
МММ-да.
1\main.cpp|13|error: stray '\365' in program| 1\main.cpp|15|error: stray '\365' in program| 1\main.cpp|20|error: stray '\365' in program| 1\main.cpp|20|error: stray '\365' in program| 1\main.cpp|28|error: stray '\365' in program| 1\main.cpp|28|error: stray '\365' in program| 1\main.cpp|37|error: stray '\365' in program| 1\main.cpp|37|error: stray '\365' in program| 1\main.cpp|44|error: stray '\365' in program| 1\main.cpp|44|error: stray '\365' in program| 1\main.cpp|45|error: stray '\365' in program| 1\main.cpp|49|error: stray '\365' in program| 1\main.cpp|51|error: stray '\365' in program| 1\main.cpp|51|error: stray '\365' in program| 1\main.cpp|68|error: stray '\365' in program| 1\main.cpp|76|error: stray '\365' in program| 1\main.cpp|13|error: expected initializer before '_overfl'| 1\main.cpp|15|error: expected initializer before '_overfl_mess'| 1\main.cpp|20|error: expected ',' or '...' before '_overfl'| 1\main.cpp||In function 'int main()':| 1\main.cpp|28|error: 'ma' was not declared in this scope| 1\main.cpp|28|error: expected ')' before '_overfl_mess'| 1\main.cpp|20|error: too few arguments to function 'void oshibka(int&, bool (*)(int), void (*)(), bool (*)(int))'| 1\main.cpp|31|error: at this point in file| 1\main.cpp|37|error: expected ',' or '...' before '_overfl'| 1\main.cpp||In function 'void oshibka(int&, bool (*)(int), void (*)(), bool (*)(int))':| 1\main.cpp|44|error: expected ')' before '_overfl'| 1\main.cpp|45|error: expected ';' before '_overfl_mess'| 1\main.cpp|45|warning: statement has no effect| 1\main.cpp|49|error: expected ')' before '_overfl'| 1\main.cpp|51|error: expected ')' before '_overfl'| 1\main.cpp|51|error: expected ')' before '_overfl_mess'| 1\main.cpp|37|error: too many arguments to function 'void oshibka(int&, bool (*)(int), void (*)(), bool (*)(int))'| 1\main.cpp|51|error: at this point in file| 1\main.cpp|68|error: expected initializer before '_overfl_mess'| 1\main.cpp|76|error: expected initializer before '_overfl'| ||=== Build finished: 33 errors, 1 warnings ===| Вот это выдал.Попытаюсь разобраться.
0
|
03.11.2013, 03:08 | |
03.11.2013, 03:08 | |
Помогаю со студенческими работами здесь
7
Объявить массив из N указателей на функции, возвращающих указатели на функции, возвращающие указатель на char Используя указатели на функцию вычислить значение функции в точке х в соответствии с выбором функции Используя указатели на функцию вычислить значение функции в точке X в соответствии с выбором функции пользователем Распечатать таблицы значений функций cox (x) и на отрезке [a; b] с шагом h, развив функции в ряд Тейлора и используя указатели на функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |