Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860

Ошибка Run-Time Check Failure #2 - Stack around the variable 'h' was corrupted

22.02.2021, 17:37. Показов 2021. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Формирование координат графика экспоненциальной функции

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
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <ctime>
 
using namespace std;
int main()
{
    srand(time(0));
    int n = 10000;
    double* y = new double[n], * x = new double[n];
    double a, ymax, ymin, dy, lambda = 0.1;
    int i, k;
    int h[30];
    for (i = 0; i < n; i++)
    {
        while (1)
        {
            a = ((double)rand() / (double)RAND_MAX);
            if (a > 0) break;
        }
        x[i] = a;
        y[i] = (-1.0 / lambda) * log(x[i]);
    }
    ymax = ymin = y[0];
    for (i = 0; i < n; i++)
    {
        if (y[i] > ymax) ymax = y[i];
        if (y[i] < ymin) ymin = y[i];
    }
    dy = (ymax - ymin) / 30;
    for (i = 0; i < 30; i++) h[i] = 0;
    for (i = 0; i < n; i++)
    {
        k = (int)((y[i] - ymin) / dy);
        h[k]++;
    }
    for (i = 0; i < 30; i++)
        cout << ymin + i * dy << " " << h[i] << endl;
    delete[] y;
    delete[] x;
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.02.2021, 17:37
Ответы с готовыми решениями:

Ошибка Run-Time Check Failure #2 - Stack around the variable 'B' was corrupted
Ошибка Run-Time Check Failure #2 - Stack around the variable 'B' was corrupted Суть работы - дан массив 5х5, нужно найти минимальный...

Ошибка Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted
Суть работы: Дана непустая последовательность слов (не более 30), в каждом слове не более восьми строчных латинских букв. Слова разделены...

Ошибка Run-Time Check Failure #2 - Stack around the variable 'TicketNumber' was corrupted
Всем доброго времени суток! Программа выполняется, но в конце вылетает раздражающее окно с ошибкой. #include &lt;iostream&gt; int...

17
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
22.02.2021, 17:49
У меня работает ваш код хорошо !
Миниатюры
Ошибка Run-Time Check Failure #2 - Stack around the variable 'h' was corrupted  
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
22.02.2021, 17:52  [ТС]
Volga_, ну я запускаю его в vs - может быть это связано с настройками самой VS

только вот с какими

у меня стоит консольное приложение....

...
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
22.02.2021, 18:01
Цитата Сообщение от xamelione25 Посмотреть сообщение
может быть это связано с настройками самой VS
Если так вы сможете возвращать в настройки по умолчанию как на ссылке https://www.technipages.com/vi... l-settings. Попробуйте !
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
22.02.2021, 18:04  [ТС]
Volga_, а вы можете собрать проект у себя и скинуть сюда мне архив его...а я попробую у себя его запустить
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
22.02.2021, 18:07
Цитата Сообщение от xamelione25 Посмотреть сообщение
Ошибка Run-Time Check Failure #2 - Stack around the variable 'h' was corrupted
Цитата Сообщение от xamelione25 Посмотреть сообщение
{
        k = (int)((y[i] - ymin) / dy);
        h[k]++;
    }
k здесь бывает больше 30, т.е. выходит за границу массива
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
22.02.2021, 18:10
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
k здесь бывает больше 30, т.е. выходит за границу массива
Цитата Сообщение от xamelione25 Посмотреть сообщение
dy = (ymax - ymin) / 30;
По-моему k будет не больше 30. Но не нашел ошибку...
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
22.02.2021, 18:12
---
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
22.02.2021, 18:14  [ТС]
oleg-m1973, Volga_,
Миниатюры
Ошибка Run-Time Check Failure #2 - Stack around the variable 'h' was corrupted  
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
22.02.2021, 18:15
Лучший ответ Сообщение было отмечено xamelione25 как решение

Решение

Цитата Сообщение от oleg-m1973 Посмотреть сообщение
По-твоему, может и не будет. А отладчик показывает, что будет. Я ему и своим глазам как-то больше верю.
Так, может быть, но раньше я отправил ему код при проверке значения k как ниже
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
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <ctime>
 
using namespace std;
int main()
{
    srand(time(0));
    int n = 10000;
    double* y = new double[n], * x = new double[n];
    double a, ymax, ymin, dy, lambda = 0.1;
    int i, k;
    int h[30];
    for (i = 0; i < n; i++)
    {
        while (1)
        {
            a = ((double)rand() / (double)RAND_MAX);
            if (a > 0) break;
        }
        x[i] = a;
        y[i] = (-1.0 / lambda) * log(x[i]);
    }
    ymax = ymin = y[0];
    for (i = 0; i < n; i++)
    {
        if (y[i] > ymax) ymax = y[i];
        if (y[i] < ymin) ymin = y[i];
    }
    dy = (ymax - ymin) / 30;
    for (i = 0; i < 30; i++) h[i] = 0;
    for (i = 0; i < n; i++)
    {
        k = (int)((y[i] - ymin) / dy);
        if (k<30)
            h[k]++;
    }
    for (i = 0; i < 30; i++)
        cout << ymin + i * dy << "\t" << h[i] << endl;
    delete[] y;
    delete[] x;
    return 0;
}
он сказал еще есть такая ошибка. Потом я удалить тот мой код....
1
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
22.02.2021, 18:16
Лучший ответ Сообщение было отмечено xamelione25 как решение

Решение

Цитата Сообщение от Volga_ Посмотреть сообщение
По-моему k будет не больше 30. Но не нашел ошибку...
C++
1
2
3
4
5
6
7
    for (i = 0; i < n; i++)
    {
        k = (int)((y[i] - ymin) / dy);
        if (k < 0 || k >= 30)
            throw std::runtime_error("!!!!!!!!!!!!!!!!");
        h[k]++;
    }
2
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
22.02.2021, 18:19  [ТС]
Volga_,
Цитата Сообщение от Volga_ Посмотреть сообщение
я отправил ему код
где???)))
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
22.02.2021, 18:20
---
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
22.02.2021, 18:25
Цитата Сообщение от xamelione25 Посмотреть сообщение
где???)))
Спросите его о наличии моего кода в первом ответе. Но потом я не верю так из-за того, как он отвечил - удалить !!! Очень жаль. Но я думаю что вы правы. (Извините, мой русский слабый.)

Добавлено через 2 минуты
Цитата Сообщение от xamelione25 Посмотреть сообщение
где???)))
Так еще раз попробуйте мой код выше !
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
22.02.2021, 18:27
Цитата Сообщение от Volga_ Посмотреть сообщение
Так еще раз попробуйте мой код выше !
Работает. Что там пробовать?
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
22.02.2021, 18:30
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Работает. Что там пробовать?
В начале я предлагал проблему как вы сказал и дал код в первом ответе, он работает хорошо у меня. Потом удалить его.... Это плохо у меня. Но теперь я думаю все хорошо, да?
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
22.02.2021, 18:34
Цитата Сообщение от xamelione25 Посмотреть сообщение
а вы можете собрать проект у себя и скинуть сюда мне архив его...а я попробую у себя его запустить
Ниже мой проект, попробуйте.
Вложения
Тип файла: rar Test.rar (8.18 Мб, 2 просмотров)
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
22.02.2021, 18:34
Цитата Сообщение от Volga_ Посмотреть сообщение
Это плохо у меня. Но теперь я думаю все хорошо, да?
Насчёт всё хорошо я бы не сказал. Зачем-то там эта h присваивается же, наверное, не слишком хорошо пропускать значения. Просто не падает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.02.2021, 18:34
Помогаю со студенческими работами здесь

Ошибка Run-Time Check Failure #2 - Stack around the variable 'str' was corrupted
Ошибка Run-Time Check Failure #2 - Stack around the variable 'str' was corrupted. Есть ошибочки помогите пожалуйста. #include...

Ошибка: Run-Time Check Failure #2 - Stack around the variable 'tmp' was corrupted.
При выполнении программы возникаеттакая ошибка, при исользовании функии delzap ошибка на счет переменной fam, при выполнении удаления...

Ошибка Run-Time Check Failure #2 - Stack around the variable 'arr' was corrupted
#include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; int main() { const int n = 3; int arr; int i =...

Ошибка: Run-Time Check Failure #2 - Stack around the variable 'ttt1' was corrupted
Ошибка при дебаге. Помогите понять в чем дело. Visual Studio 2010 Код #include &lt;iostream&gt; #include...

Ошибка run-time check failure #2 - stack around the variable 'findmonths' was corrupted
Есть код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; #include &lt;conio.h&gt; #include &lt;string.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru