Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
andryshka
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 81
#1

Ошибка при удалении массива - C++

21.05.2014, 21:48. Просмотров 332. Ответов 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <iomanip>
#include  <math.h>
using namespace std;
double funcion(double);
double Lagranje(double, int, double*);
 
main()
{   
    setlocale(LC_ALL, "Russian");
    int n,m,i;
    double *massive_y, *massive_x, a, b, x;
    cout << "×èñëî Г*åèçâåñòГ*ûõ=";
    cin >> n;
    cout << "\n ×èñëî óçëîâ=";
    cin >> m;
    cout << "\n ГЌГ*Г·Г*ëî ГЁ ГЄГ®Г*ГҐГ¶ ГЁГ*òåðâГ*Г«Г*";
    cin >> a >> b;
     massive_x = new double[m];
    
     massive_y = new double[n];
 
    for (i=1; i<=m; i++)
        massive_x[i] = a+(b-a)/(m-1);
    
    for(i=1; i<=n; i++) 
        massive_y[i] = Lagranje(x, m, massive_x);
        
        
        
        
        
    delete []massive_x;
    delete []massive_y;
}
 
 
 
double function(double x)
{
    return pow(x,3.)-5.*x*x;
}
 
double Lagranje(double x_t,int n,double *x)
{
    int i,k;
    double e,p=0;
    for(k=1; k<=n; k++)
    {
            e=1.;
            for (i=1;i<=n;i++)
            if (i!=k)
                e *= ((x_t-x[i])/(x[k]-x[i]));
            p += e*function(x[k]);
    }
 return p;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2014, 21:48     Ошибка при удалении массива
Посмотрите здесь:

Ошибка при удалении динамического массива - C++
Добрый вечер! Ругается на HEAP CORRUPTION DETECTED в строке с delete vertex; В чём может быть дело? void read_stl (char*...

Ошибка при удалении динамического массива - C++
Доброго времени суток! ПРоблема заключается в том, что при попытке очистить память из под динамического массива вылетает ошибка &quot;access...

Ошибка при удалении динамического массива - C++
Непонятная мне ошибка при удалении массива #include &lt;iostream&gt; #include &lt;conio.h&gt; using std::cout; using std::cin; using...

Ошибка при удалении массива с помощью delete - C++
Изучаю C++ и у меня задание разбить текст неопределенной длинны на массив строк. Нацарапал класс типа string ниже выложу. В него задача...

Возникает ошибка при удалении динамического массива символов в деструкторе класса - C++
Всем привет. Есть приватная переменная, указатель на строку wchar_t *pUAgent; В конструкторе я ее инициализирую: pUAgent =...

Ошибка при удалении значения списка - C++
В строке 34, как только задействуется функция erase вылезает ошибка. #include &quot;iostream&quot; #include &lt;list&gt; using namespace std; ...

Ошибка при удалении из односвязного списка - C++
Написал код, но при удалении элемента из списка у которого есть значение 2 выдаёт ошибку. Помогите разобраться в чём проблема?? ...

Ошибка при удалении в базе данных. - C++
Здравствуйте. Есть код готовый, рабочий с баззой данных. Ошибка вылетает(через раз) когда сначала добавляется элемент а потом...

Ошибка при удалении динамически выделенной памяти - C++
Добрый день, хочу удалить выделенный массив, но выдает ошибку. Вот собственно код создаваемой функции. using namespace std; void...

Ошибка при удалении єлемента из однонаправленного списка - C++
Помогите исправить ошибку в функции удаления элемента из однонаправленного списка: void linklist::Del( double a) //а-элемент, который...

Ошибка при удалении явно заданного указателя - C++
Помогите, пожалуйста, с этой проблемой. Уже 2 недели не могу сдать лабу &quot;main.cpp&quot; char* a=new char; char b=0; char* c=new char;...

Ошибка с0000005 при удалении класса-матрицы - C++
о/ Решил написать класс-шаблон матрицы: template &lt;typename T&gt; class matrix { public: matrix(int d0, int d1) { matrix...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
schdub
2945 / 1289 / 238
Регистрация: 19.01.2009
Сообщений: 3,366
Завершенные тесты: 1
21.05.2014, 22:11     Ошибка при удалении массива #2
andryshka,
C++
1
2
3
4
5
6
massive_x = new double[m];
massive_y = new double[n];
for (i=1; i<=m; i++)
    massive_x[i] = a+(b-a)/(m-1);
for(i=1; i<=n; i++)
    massive_y[i] = Lagranje(x, m, massive_x);
Масивы в С/С++ начинаются с нуля, следовательно вы выходие за границы массива и портите память.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,186
Завершенные тесты: 1
21.05.2014, 22:13     Ошибка при удалении массива #3
Цитата Сообщение от andryshka Посмотреть сообщение
for (i=1; i<=m; i++)
massive_x[i] = a+(b-a)/(m-1);
for(i=1; i<=n; i++)
massive_y[i] = Lagranje(x, m, massive_x);
C++
1
2
3
4
for (i=0; i<m; i++)
        massive_x[i] = a+(b-a)/(m-1); 
for(i=0; i<n; i++) 
        massive_y[i] = Lagranje(x, m, massive_x);
Ответ Создать тему
Опции темы

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