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

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

Войти
Регистрация
Восстановить пароль
 
pro_mary
1 / 1 / 0
Регистрация: 23.03.2009
Сообщений: 99
Завершенные тесты: 1
#1

Ошибка при работе с памятью - C++

23.05.2011, 19:10. Просмотров 985. Ответов 3
Метки нет (Все метки)

Написан следующий код:
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
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <cstdlib>
#include <fstream>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    double pi = 3.1415926535;
    int n;
    cout << "Please, enter lenght of reference sequence: ";
    cin >> n;
    int K;
    cout << "K = ";
    cin >> K;
    double *sn = new double[n-1];   // массив последовательности
    
    for (int i = 0; i < n; i++)
    {
        sn[i] = K * sin ((pi*i)/(n-1));
        cout << "sin ( " << ((pi*i)/(n-1)) << " )" << " = " << sn[i] << endl;
    }
        delete []sn;
 
        system("pause");
    return 0;
}
Сначала все работало нормально, потом появилась ошибка работы с памятью:"Windows has triggered a breakpoint in sposob1.exe.

This may be due to a corruption of the heap, which indicates a bug in sposob1.exe or any of the DLLs it has loaded.

This may also be due to the user pressing F12 while sposob1.exe has focus.

The output window may have more diagnostic information.". При компиляции никаких ошибок нет. Что не так? Подскажите, пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2011, 19:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при работе с памятью (C++):

Ошибка при работе с памятью - C++
Если ввести например 6, 0, чтобы выбросить исключение. То по завершение программы выскакивает ошибка. В чём может быть дело? Так что то про...

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

Ошибка с памятью при работе класса и map - C++
В общем есть класс тест class test { public: test(void); ~test(void); test(const int&amp;); private:

Ошибка с памятью при работе с двумерными массивами. - C++
{ int i, j, c, kol; n=StrToInt(Edit1-&gt;Text); m=StrToInt(Edit2-&gt;Text); for(i=0; i&lt;n; i++) { for(j=0; j&lt;m; j++)...

Ошибка с памятью при работе с динамическим двумерным массивом - C++
Вроде всё правильно, но в ходе работы программа выдаёт ошибку(на скрине). Дело в двумерном динамическом массиве. Ниже код с функцией, куда...

Ошибка в работе с памятью - C++
После использования программы и последующего выхода из нее возникает ошибка HEAP CORRUPTION DETECTED. Хотелось бы узнать, в чем причина и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
23.05.2011, 19:13 #2
Цитата Сообщение от pro_mary Посмотреть сообщение
C++
1
    double *sn = new double[n-1];   // массив последовательности
А почему n-1?
pro_mary
1 / 1 / 0
Регистрация: 23.03.2009
Сообщений: 99
Завершенные тесты: 1
23.05.2011, 19:18  [ТС] #3
количество элементов в массиве должно быть n.
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
23.05.2011, 19:25 #4
Цитата Сообщение от pro_mary Посмотреть сообщение
количество элементов в массиве должно быть n.
В том то и дело что n. Поэтому:
C++
1
double *sn = new double[n];
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2011, 19:25
Привет! Вот еще темы с ответами:

Управление динамической памятью при работе с классами - C++
Всем привет! Есть очень сложный класс, внутри которого есть куча указателей, в его конструкторе все эти указатели получают память при...

Повреждена куча при работе с динам. памятью. Почему? Как исправить? - C++
Приветствую всех! Такая проблема: Вот есть код. В нем периодически появляются ошибки, а иногда и не появляется, и все хорошо работает....

При перемножении матриц ошибка с памятью - C++
Написал класс матрица с алгоритмом умножения, но при выходе из проги выбивает ошибку. Не пойму как написать деструктор. Подскажите как...

Не является внутренней или внешней командой - ошибка не при компиляции а при работе программы - C++
В VS скомпилировал код #include &lt;iostream&gt; using namespace std; int main() { int a; cout&lt;&lt;&quot;Hallo&quot;; cin&gt;&gt;a; cout&lt;&lt;a; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.05.2011, 19:25
Ответ Создать тему
Опции темы

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