0 / 0 / 0
Регистрация: 21.11.2017
Сообщений: 9
|
||||||
1 | ||||||
Непонятное поведение указателя24.08.2020, 13:30. Показов 367. Ответов 3
Добрый день! Столкнулся со следующей проблемой. Есть функция, которая оконным методом вычисляет дисперсию данных. На вход она получает указатель на массив исходных данных и его размер. В первую очередь функция расширяет массив слева и справа, а дальше методом окна вычисляет дисперсию помещает в новый массив, который должен вернуться наверх. Код ниже.
В функции происходит динамическое выделение памяти под расширенный массив (extended_buffer) и выходной массив (std_buffer). Функция возвращает рандомные данные ровно до тех пор, пока не раскомментируешь, казалось бы, бесполезный цикл. При выполнении этого бесполезного цикла - все ок. Причём, если присвоение не в цикле, то снова какая-то билеберда. Проблема, скорее всего, именно с extended_buffer, но не могу понять, что именно не так. Пробовал менять компиляторы - ни к чему не привело.
В общем разобрался в чём было дело. При декларации переменных sum1 и sum2 0 присваивался только sum2, а sum1 имело рандомное значение. Но все-таки было бы интересно узнать, почему при написании цикла сверху, 0 присваивался сразу двум переменным.
0
|
24.08.2020, 13:30 | |
Ответы с готовыми решениями:
3
Непонятное поведение printf() Непонятное поведение функции atol Странное поведение указателя на массив внутри функции Непонятное поведение при отладке |
2528 / 1247 / 461
Регистрация: 08.11.2016
Сообщений: 3,428
|
|
24.08.2020, 13:36 | 2 |
УМВР, не знаю что у вас не так, но закоментированный цикл вообще не при чем, а вот при четных значениях апертуры Ваша функция явно косячит в расчетах
0
|
0 / 0 / 0
Регистрация: 21.11.2017
Сообщений: 9
|
|
24.08.2020, 14:59 [ТС] | 3 |
Да, все верно. Функция сделана только для нечетных значений апертуры.
0
|
фрилансер
5498 / 5094 / 1047
Регистрация: 11.10.2019
Сообщений: 13,341
|
|
24.08.2020, 17:16 | 4 |
на то оно и неопределённое поведение при отсутствии инициализации )
по меньшей мере на стеке добавлялась ещё одна переменная uint16_t iterator = 0
1
|
24.08.2020, 17:16 | |
24.08.2020, 17:16 | |
Помогаю со студенческими работами здесь
4
Неадекватное поведение указателя на тип char Непонятное поведение поведение TIM6 на STM32f4discovery LPTSTR (непонятное использование указателя) Непонятное поведение ОС Непонятное поведение Непонятное поведение Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |