Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 24.02.2018
Сообщений: 23

Некорректно работают указатели на функцию

25.03.2018, 01:27. Показов 3431. Ответов 73
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В режиме отладки видно что, функция возвращает правильный результат, но на экран выводится какой-то мусор.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int* a()
{
    int b[] = { 1,2,3 };
    return b;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    int *ar;
    ar = a();
    
    cout << ar[0] << ar[1] << ar[2];
 
    _getch();
    return 0;
}
Почему так происходит? Как это исправить? Как это работает?
Миниатюры
Некорректно работают указатели на функцию   Некорректно работают указатели на функцию   Некорректно работают указатели на функцию  

Некорректно работают указатели на функцию   Некорректно работают указатели на функцию   Некорректно работают указатели на функцию  

0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.03.2018, 01:27
Ответы с готовыми решениями:

некорректно работают условия
#include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &quot;locale&quot; #include &quot;stdlib.h&quot; int main() { int q; float a, b, r; ...

2 функции по перестановке векторов работают некорректно
Написал 2 функции по перестановки векторов, они делают свою работы, но не так как нужно. В начале пявляеться набор чисел, а если запускать...

Не работают указатели
Как сделать указатели на функцию в моем случае? много чего перепробовал, ничего не работает. помогите пжлста. #include...

73
 Аватар для Olej
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
25.03.2018, 11:55
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Croessmah Посмотреть сообщение
Да не так уж и сильно.

Не по теме:


Новый рекламный слоган: товарищи старпёры - не всё, что вы ещё помните, что ещё не съел ваш склероз - нужно обязательно публично писать.

0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
25.03.2018, 12:00
Цитата Сообщение от Olej Посмотреть сообщение
Это было сильно раньше
На самом деле это есть сейчас. MinGW 5.1.0 2015 года это обрабатывает, с предупреждением, правда. И компиляторы еще очень долго будут это обрабатывать, потому что сохранился громадный объем исходных текстов, где это слово может присутствовать.
0
25.03.2018, 12:05

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
Возможно, они придут на работу, а там компилятор с не полной поддержкой C++98
Да ну врядли. Это ж насколько всё должно быть древним - хотя мне сложно судить об этом - я работаю на Java

0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
25.03.2018, 12:05
Цитата Сообщение от Olej Посмотреть сообщение
не вспоминайте это старьё, чтобы не смущать молодёжь и не создавать им в голове бессмыслицу.
Молодежь придет работать программистом и их усадят за проект, который закончен 10 лет назад и вдруг заглючил на каких-то данных. Надо разобраться и исправить.
0
 Аватар для Olej
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
25.03.2018, 12:10
Цитата Сообщение от Recrut_rf Посмотреть сообщение
можно объявить переменную или объект без указания их конкретного типа, использую ключевое слово auto.
Конечно, в смысле выведения типов auto на несколько порядков полезнее, чем в каком-то дремучем смысле, идущем от ANSI C 1970-го года.
Например в таком фрагменте:
Code
1
2
3
4
5
map< wstring, vector< string > > z;
...
for( auto &x : z ) {
...
}
В части выводимости типов C++ только вдогонку заимствует то, что в новых языках присутствует от рождения: Go, Rust, Swift, Kotlin ...

Добавлено через 2 минуты
Цитата Сообщение от palva Посмотреть сообщение
Молодежь придет работать программистом и их усадят за проект, который закончен 10 лет назад и вдруг заглючил на каких-то данных
Не парьте мозги!
То дремучее ваше auto идёт из C 1970-го года.
А те проекты, про которые вы пишете ... которые колхозники закончили 10 лет назад? ... так пусть в своём колхозе они его и сопровождают.
0
25.03.2018, 12:13

Не по теме:

Цитата Сообщение от Recrut_rf Посмотреть сообщение
Да ну врядли.
Я даже знаю несколько человек, которым без проблем удалось такое найти.

0
25.03.2018, 12:13

Не по теме:

Цитата Сообщение от Olej Посмотреть сообщение
так пусть в своём колхозе они его и сопровождают.
И пойдет наш молодой человек лесом на небольшую зарплату преподавать программирование в институт

0
 Аватар для Olej
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
25.03.2018, 12:14
Цитата Сообщение от palva Посмотреть сообщение
MinGW 5.1.0 2015 года это обрабатывает, с предупреждением, правда.
MinGW - это только для студентов дурных университетов... а ещё больше - их пЫдагогам, которые ничему новому так и не учатся за последние 30 лет
Если кому нужен POSIX - использует Linux.
Другие несчастные так и живут под Windows ... но им то зачем MinGW?
0
 Аватар для Recrut_rf
388 / 334 / 65
Регистрация: 14.10.2014
Сообщений: 1,453
25.03.2018, 12:23
Цитата Сообщение от palva Посмотреть сообщение
Молодежь придет работать программистом и их усадят за проект, который закончен 10 лет назад и вдруг заглючил на каких-то данных. Надо разобраться и исправить.
Вот именно - нужно знать что было до, и что стало после -
Цитата Сообщение от Olej Посмотреть сообщение

Это было так давно, что всем кто так давно живёт, что это ещё помнит - совет: не вспоминайте это старьё, чтобы не смущать молодёжь и не создавать им в голове бессмыслицу.
Не надо давать плохих советов.

Цитата Сообщение от Recrut_rf Посмотреть сообщение
я работаю на Java
и программирую на основе того кода, который уже давно разработан в данной организации ("своего рода единая программная платформа" под проекты организации) И, как многим наверняка известно, у джавы тоже есть свои версии языка. Ну так вот - мне постоянно приходится сталкиваться с ситуацией, когда новейшие средства языка не поддерживаются тем или иным проектом - ведь чтобы адаптировать старый код под новый стандарт нужно специально этим заниматься, да и не каждый код позволит это сделать , да и вообще это возможно нафиг никому не нужно. И слава "компьютерным богам" , что в данных проектах есть хорошее логирование и есть возможность посмотреть, что в данной строчке кода допущена ошибка - использованная версия джавы более современна, нежели поддерживаемая. А если этого нет и IDE молчит как партизан - а сроки поджимают - что тогда?
0
25.03.2018, 12:25

Не по теме:

Цитата Сообщение от Olej Посмотреть сообщение
Другие несчастные так и живут под Windows ... но им то зачем MinGW?
Несчастных много. Просто жизнь такая. Я привык делать то, что поручают и за что платят деньги. Большая ли разница для программиста на каком языке программировать и под какую операционную систему?
Сейчас я не работаю, но помогаю сыну, у которого программирование в школе и которому дали для установки CodeBlock. Да и на данном форуме у очень многих стоит CodeBlock. Хочешь общаться -- имей CodeBlock.

0
25.03.2018, 12:29

Не по теме:

Цитата Сообщение от palva Посмотреть сообщение
Хочешь общаться -- имей Code::Blocks.
А что делать тем, кто уже поимел его? :jokingly:

0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
25.03.2018, 12:31
CodeBlocks, конечно.
0
25.03.2018, 12:32

Не по теме:

Цитата Сообщение от Recrut_rf Посмотреть сообщение
Да ну врядли. Это ж насколько всё должно быть древним
что то я сам себе противоречу Извиняюсь :-[:-[:-[ - написал не подумав. Может подобное быть - ещё как может
Цитата Сообщение от Croessmah Посмотреть сообщение
Я даже знаю несколько человек, которым без проблем удалось такое найти
Сам сталкиваюсь на работе c чем то похожим - правда не с такой древностью и на Java но всё же

0
 Аватар для Olej
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
25.03.2018, 13:17
Цитата Сообщение от palva Посмотреть сообщение
Просто жизнь такая. Я привык делать то, что поручают и за что платят деньги. Большая ли разница для программиста на каком языке программировать и под какую операционную систему?
Сейчас я не работаю, но помогаю сыну, у которого программирование в школе и которому дали для установки CodeBlock.
Отвечаю на ваши животрепещущие вопросы:
1. Большая ли разница? Разница большая. Если вы привыкли делать только то "за что платят деньги", то в этом и разница: программистам Linux (а уж тем более модулей ядра Linux) платят в 2-3 раза больше...
2. С языками та же история ... PHP/JS могут батрачить хоть всю жизнь, но никогда не достигнут уровня оплаты в новых проектах, требующих разработчиков Go, Swift, Kotlin (я не для бла-бла-бла говорю, а по реальным предложениям, часть из которых и я обсуждаю)
3. Вот потому вы и "не работаю, но помогаю сыну", что ... "большая ли разница для программиста на каком языке программировать и под какую операционную систему?"
4. Учите лучше сына ... только не прививайте ему любовь к стандартам и привычкам ... "времён Очакова и покоренья Крыма" - а то испортите парня... Как там в английской поговорке:
Дайте собаке плохую кличку, после чего можете сразу её повесить.
Добавлено через 9 минут
Цитата Сообщение от Recrut_rf Посмотреть сообщение
И, как многим наверняка известно, у джавы тоже есть свои версии языка.
Не путайте одно с другим, совершенно разные вещи:
- Java - молодой язык, первые сообщения - май 1995, и его вся идеология была заложена одним хозяином-разработчиком Sun Microsystems - всё остальное дальше было только эволюционное развитие;
- а C - 1970 год, и доделывали и добавляли туда всем миром, "с миру по нитке", и уродств типа auto как объявление стековых переменных там масса ... за 48 лет;
Это очень разные вещи.
0
 Аватар для Recrut_rf
388 / 334 / 65
Регистрация: 14.10.2014
Сообщений: 1,453
25.03.2018, 13:40
Цитата Сообщение от Olej Посмотреть сообщение
Не путайте одно с другим, совершенно разные вещи:
- Java - молодой язык, первые сообщения - май 1995, и его вся идеология была заложена одним хозяином-разработчиком Sun Microsystems - всё остальное дальше было только эволюционное развитие;
- а C - 1970 год, и доделывали и добавляли туда всем миром, "с миру по нитке", и уродств типа auto как объявление стековых переменных там масса ... за 48 лет;
Это очень разные вещи.
Да я не про то, какой язык моложе и что туда добавляли - я про то, что вышел новый стандарт языка - появились в нём новые штуки - сильно облегчающие жизь - как тот же auto в С++11. Программисту дали задание - "расширь проект новыми возможностями" - ну он и начал "расширять его" используя новейшие средства разработки - IDE - молчит - для неё всё нормально и по стандарту - а вот проект не запускается - так как нет поддержки новых возможностей языка.
0
 Аватар для Olej
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
25.03.2018, 13:51
IDE - молчит - для неё всё нормально и по стандарту - а вот проект не запускается - так как нет поддержки новых возможностей языка.
Вообще то, ни одна IDE ничегошеньки не знает ни про стандарты, ни про "возможности языка" ... да и про сам язык, зачастую, (хорошая IDE) не знает.
Про всё это знает компилятор (иногда интерпретатор).

Добавлено через 4 минуты
Цитата Сообщение от Recrut_rf Посмотреть сообщение
Да я не про то, какой язык моложе и что туда добавляли
А напрасно
Одно дело, когда язык проектируется колхозом, и совершенно другой - узкой командой профессионалов. В 1-м случае это получается винегрет - лучший пример тому то, что происходило со всеми диалектами PASCAL. Лучший пример 2-го - язык Go, который взял лучшее от C, ликвидировал громоздкость C++, и нисколько не уступает последнему в возможностях.
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
25.03.2018, 14:11
Цитата Сообщение от Olej Посмотреть сообщение
Вот потому вы и "не работаю, но помогаю сыну", что ... "большая ли разница для программиста на каком языке программировать и под какую операционную систему?"
Не вижу связи. Программист должен быть гибким и умным. Если ему предложат хорошие деньги за спасение гибнущего проекта, но при этом ему придется разобраться кое в чем, с чем он раньше не сталкивался, он должен соглашаться, а не сидеть без работы. А узкие программисты, которые готовят себя под написание ядра Linux, в подавляющем большинстве идут преподавателями в вузы. Такие программисты не нужны на рынке.
0
25.03.2018, 14:12

Не по теме:

Цитата Сообщение от Olej Посмотреть сообщение
Вообще то, ни одна IDE ничегошеньки не знает ни про стандарты, ни про "возможности языка" ... да и про сам язык, зачастую, (хорошая IDE) не знает.
А подсветка синтаксиса (К примеру ошибок, повторяющихся значений ... ) это разве на уровне компилятора делается ?:scratch:
Цитата Сообщение от Olej Посмотреть сообщение
диалектами PASCAL
На паскале писал всего два раза - задание делал для сестры в школу - и это "синтаксический ужас" после Cи подобных языков. А вообще можно придумать супер, мега, крутой, удобный, мощный язык - но если он нафиг никому не нужен то... В общем приходится программировать на том, за что платят деньги
Цитата Сообщение от Olej Посмотреть сообщение
требующих разработчиков Go, Swift, Kotlin (я не для бла-бла-бла говорю, а по реальным предложениям, часть из которых и я обсуждаю)
Программистов много - предложений мало

0
 Аватар для Olej
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
25.03.2018, 14:18
Цитата Сообщение от palva Посмотреть сообщение
которые готовят себя под написание ядра Linux, в подавляющем большинстве идут преподавателями в вузы. Такие программисты не нужны на рынке.
Та ты шо-о-о-о-о-о... ?
Ты может даже про ядро Linux чего-то слышал?
Т.е. "на рынке" нужны исключительно WEB-кодеры? ... не спеши - я конспектирую.

Добавлено через 4 минуты
Цитата Сообщение от Recrut_rf Посмотреть сообщение
А подсветка синтаксиса (К примеру ошибок, повторяющихся значений ... ) это разве на уровне компилятора делается ?
Т.е. вам ваши "ошибки" ищет IDE? ... ну-ну ... бывает
Цитата Сообщение от Recrut_rf Посмотреть сообщение
Программистов много - предложений мало
Это плохим программистам предложений мало.
Тем, которым "приходится программировать на том, за что платят деньги".
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
25.03.2018, 14:20
Цитата Сообщение от Olej Посмотреть сообщение
Та ты шо-о-о-о-о-о... ?
В самом деле. Программистов, которые кичатся тем, что они чего-то не знают, не умеют и ни в жисть не будут изучать, даже если это понадобится фирме, работодатель не любит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.03.2018, 14:20
Помогаю со студенческими работами здесь

Как работают указатели с массивами
Хочу на простом примере перестановки двух элементов уяснить - как работают указатели с массивами, но ничего не получается. Объясните на...

Как работают ссылки и указатели?
Не нашел описание того, почему именно так работает, везде говорится только то, что так надо делать и все Аргумент функции является...

В функцию с переменным числом параметроы передать указатели на функцию
Добрый вечер. По заданию нужно в функцию с переменным числом параметров передать имя функций, которые нужно вызвать. Долго думала,как имея...

Кнопки регулировки громкости на клавиатуре иногда не работают и/или работают некорректно
Здравствуйте, у меня возникает некая неполадка/баг со звуком. Пользуюсь я данной клавиатурой, как видно на ней есть 3 кнопки для...

Некорректно работают скрипы
Доброго времени суток! Недавно столкнулся с такой проблемой...В общем, не работают кнопки на сайтах, не открываются картинки в яндексе,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа в КА2. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru