|
0 / 0 / 0
Регистрация: 24.02.2018
Сообщений: 23
|
||||||
Некорректно работают указатели на функцию25.03.2018, 01:27. Показов 3422. Ответов 73
Метки нет (Все метки)
В режиме отладки видно что, функция возвращает правильный результат, но на экран выводится какой-то мусор.
0
|
||||||
| 25.03.2018, 01:27 | |
|
Ответы с готовыми решениями:
73
некорректно работают условия 2 функции по перестановке векторов работают некорректно Не работают указатели |
|
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
|
|||
| 25.03.2018, 01:38 | |||
|
1
|
|||
|
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
|
||||||
| 25.03.2018, 01:44 | ||||||
Сообщение было отмечено VibeProgramm как решение
Решение
Время жизни статик массива ограничено функцией. Объявляйте внутри функции динамический массив.
Однако:
1
|
||||||
|
0 / 0 / 0
Регистрация: 24.02.2018
Сообщений: 23
|
|||
| 25.03.2018, 01:46 [ТС] | |||
0
|
|||
|
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
|
|
| 25.03.2018, 01:50 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 24.02.2018
Сообщений: 23
|
||||||||
| 25.03.2018, 02:00 [ТС] | ||||||||
0
|
||||||||
|
2735 / 890 / 331
Регистрация: 10.02.2018
Сообщений: 2,113
|
||
| 25.03.2018, 02:03 | ||
|
Для понимания причин нужно немного узнать про исполнение программы на более низком уровне: что такое регистры, как организуется вызов функций и передача их аргументов, как работает стек и где размещаются локальные переменные. В двух словах это не объяснить, проще сказать, что так делать не нужно)
1
|
||
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
|
| 25.03.2018, 02:06 | |
|
0
|
|
|
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
|
||||
| 25.03.2018, 02:10 | ||||
![]() Добавлено через 1 минуту ![]() Добавлено через 1 минуту
0
|
||||
|
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
|
|
| 25.03.2018, 02:10 | |
|
Olej, интересно то, что эта глупость работает) а как - еще интереснее
0
|
|
|
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
|
|||
| 25.03.2018, 02:12 | |||
0
|
|||
|
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
|
|||||||
| 25.03.2018, 02:12 | |||||||
|
А использовать лучше:
1
|
|||||||
|
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
|
||
| 25.03.2018, 02:14 | ||
|
Не надо ля-ля о том, чего ни хера не понимаете, дружище. А что "работает" - так то показалось.
0
|
||
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
|
| 25.03.2018, 02:18 | |
|
0
|
|
|
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
|
||
| 25.03.2018, 02:20 | ||
|
Потому что память под переменную выделяется внутри функции, а освобождать/удалять её нужно где-то в вызывающем коде, и не забыть это сделать. Лучшее из всего, что пЫАнЭры здесь напредлагали, если совсем уж без такой конструкции как возврат массива из функции нельзя обойтись, то это объявить этот массив внутри функции static.
0
|
||
|
2735 / 890 / 331
Регистрация: 10.02.2018
Сообщений: 2,113
|
||||||||||||
| 25.03.2018, 02:26 | ||||||||||||
|
Оптимизация в release
0
|
||||||||||||
|
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
|
|||||||
| 25.03.2018, 02:35 | |||||||
|
Есть неубиенное правило: все локальные переменные переменные, объявленные в функции, после завершения функции перестают существовать. Всё. Точка. Локальные переменные выделяются в кадре стека функции. После завершения функции кадр стека ликвидируется. Нельзя возвращать из функции указатели на локальные переменные. А вот сами локальные структурные переменные, сколь угодно большого размера - возвращайте пожалуйста. ![]()
0
|
|||||||
|
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
|
||||||||
| 25.03.2018, 02:41 | ||||||||
|
Однако, если использовать выделенную память под локальные данные сразу после момента присвоения, они не затираются мусором. Буквально на "единождый" вызов.
1/2/static мы уже не освободим. 3/4 пожалуйста. Мог бы для нас глупых разъяснить все ![]() Я подобные конструкции не использовал (даже не думал, что так делают), но теперь уже самому интересно, что будет твориться с памятью
0
|
||||||||
|
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
|
|||
| 25.03.2018, 02:45 | |||
![]() Добавлено через 54 секунды
0
|
|||
| 25.03.2018, 02:45 | |
|
Помогаю со студенческими работами здесь
20
Как работают указатели с массивами
В функцию с переменным числом параметроы передать указатели на функцию Кнопки регулировки громкости на клавиатуре иногда не работают и/или работают некорректно Некорректно работают скрипы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль уникальности заводского номера - вариант №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
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|