С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
saqef
34 / 36 / 17
Регистрация: 16.04.2017
Сообщений: 474
Записей в блоге: 4
Завершенные тесты: 1
1

C++ delete[] точка останова/повреждение кучи

16.04.2017, 03:20. Просмотров 349. Ответов 2
Метки нет (Все метки)

Добрый день.
Подскажите, пожалуйста.
Вот код функции:

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
40
41
void interpol(point* a, int n, int k, point* y, int inter)  //a-original  y-required  n-orig.size k-inter.size
        {
            int border;
            double temp, s, w;
            double* z = new double[inter];
            for (int p = 0; p < k; p++)
                {
                    border = 0;
                    while (a[border].x < y[p].x)
                        border++;
                    border -= inter / 2;
                    if (border < 0)
                        border = 0;
                    if (border + inter >= n)
                        border = n - inter;
                    temp = 1, s = 0, w = 1;
                    for (int i = border; i < inter + border; i++)
                    {
                        for (int j = border; j < inter + border; j++)
                            if (i != j)
                                temp *= (a[i].x - a[j].x);
                        z[i] = a[i].fx / temp;
                    }
                    for (int i = border; i < inter + border; i++)
                    {
                        temp = y[p].x - a[i].x;
                        if(temp!=0)
                        s += z[i] / temp;
                        w *= temp;
                    }
                    y[p].fx = w*s;
                }
            try
            {
                delete[] z;
            }
            catch (Exception^ e)
            {
                MessageBox::Show(Convert::ToString(e));
            }
        }
Проблема с delete[] z.
Если поставить breakpoint и пошагово отлаживать, то при выполнении delete сработает точка останова.
Если не ставить, то произойдет повреждение кучи.
Если вообще закомментировать, то всё работает- только утечка памяти.
Вычисляется всё правильно, и с входными параметрами всё в норме.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2017, 03:20
Ответы с готовыми решениями:

Точка останова(повреждение кучи)
Прошу помочь, смотрел по форуму похожие темы - ответа не нашел void...

Повреждение кучи
После выполнения программы выдаёт ошибку Debug Assertion Failed Помогите найти...

Повреждение кучи
#ifndef _TASK2_H_ #define _TASK2_H_ #include &lt;iostream&gt; using namespace...

Повреждение кучи
Есть код #include &lt;iostream&gt; using namespace std; struct STUDENT { char...

Повреждение кучи
Приветствую! Сделал, казалось бы, простую программу, но у меня возникает ошибка...

2
igorrr37
1908 / 1512 / 767
Регистрация: 21.12.2010
Сообщений: 2,557
Записей в блоге: 10
16.04.2017, 05:06 2
Цитата Сообщение от saqef Посмотреть сообщение
double* z = new double[inter];
for (int i = border; i < inter + border; i++)
{
z[i]...
посмотри чтобы i не превышала inter
1
saqef
34 / 36 / 17
Регистрация: 16.04.2017
Сообщений: 474
Записей в блоге: 4
Завершенные тесты: 1
17.04.2017, 00:03  [ТС] 3
Просто не заметил выход за границу.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2017, 00:03

Ошибка о повреждение кучи
Вот переделал программу со строками, с использованием классов. Почему-то опять...

МНК, повреждение кучи
Аппроксимация методом наименьших квадратов.. Если не использовать...

Странное повреждение кучи
Доброго времени суток, форумчане! Есть проект, в нем реализована функцию...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru