Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/47: Рейтинг темы: голосов - 47, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 16.08.2019
Сообщений: 17

Возникло необработанное исключение по адресу 0x73A62CF2: исключение Microsoft C++: std::bad_array_new_length

17.08.2019, 18:56. Показов 10137. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, уважаемые форумчане
Подскажите начинающему программисту. Ругается на необработанное исключение по адресу 0x73A62CF2. Я так понимаю, что здесь что-то не ладно с длиной массива. Либо выходит за его пределы. Но ЧТО конкретно, понять не могу (в силу своей "зелёности", так скажем). Хотелось бы обратить внимание на строку 21, именно оттуда посылается сообщение об исключении.

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
58
59
60
61
62
#define _CRT_NO_WARNINGS
#include<fstream>
#include<iostream>
#include<clocale>
using namespace std;
struct Node {
    int left, right;
    Node*p;
};
Node*push(Node* top, const int l, const int r);
Node*pop(Node*top, int &l, int &r);
int main() {
    setlocale(LC_ALL, "ru");
    ifstream fin("sort1.txt");
    if (!fin) {
        cout << "Нет файла sort1.txt" << endl;
        system("pause");
    }
    int n;
    fin >> n;
    float* arr = new float[n];
    for (int i = 0; i < n; i++)
        fin >> arr[i];
    int left, right;
    Node*top = 0;
    top = push(top, 0, n - 1);
    while (top) {
        top = pop(top, left, right);
        while (left < right) {
            int i = left, j = right;
            float middle = arr[(left + right) / 2];
            while (i < j) {
                while (arr[i] < middle) i++;
                while (middle < arr[j]) j--;
                if (i <= j) {
                    float temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                    i++; j--;
 
                }
            }
            if (i < right)
                top = push(top, i, right);
            right = j;
        }
    }
    for (int i = 0; i < n; i++)
        cout << arr[i] << ' ';
}
Node*push(Node*top, const int l, const int r) {
    Node*pv = new Node;
    pv->left = l; pv->right = r; pv->p = top;
    return pv;
}
Node*pop(Node*top, int &l, int &r) {
    Node* pv = top->p;
    l = top->left;
    r = top->right;
    delete top;
    return pv;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.08.2019, 18:56
Ответы с готовыми решениями:

Что я сделал не так?Возникло необработанное исключение по адресу 0x7434A9F2 : исключение Microsoft C++: std
//Калькулятор Intrigger #include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;string.h&gt; #include&lt;string&gt; #include&lt;cstring&gt; using...

Возникло необработанное исключение по адресу 0x76B118A2
Ввожу символы на экране, хотел сделать так, что при нажатии backspace они стирались. В некоторых случаях стирает, а в некоторых возникает...

Возникло необработанное исключение по адресу 0x75792CF2
при создание массива в куче вылетает программа .При дебаге выдаёт : Возникло необработанное исключение по адресу 0x75792CF2 в...

23
88 / 24 / 8
Регистрация: 30.03.2019
Сообщений: 174
17.08.2019, 19:17
Ошибка исполнения std::bad_array_new_length
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
17.08.2019, 19:19
Amber17, какой длины массив создаете?
0
0 / 0 / 0
Регистрация: 16.08.2019
Сообщений: 17
17.08.2019, 19:23  [ТС]
массив длины n
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
17.08.2019, 19:30
Amber17,
Цитата Сообщение от Amber17 Посмотреть сообщение
массив длины n
тоесть ошибка во время компиляции?
0
0 / 0 / 0
Регистрация: 16.08.2019
Сообщений: 17
17.08.2019, 19:46  [ТС]
Ну да. При нажатии F5
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
17.08.2019, 20:04
Amber17, а что за значение в файле? Такая ошибка обычно при отрицательных размерах массива либо слишком больших.
0
0 / 0 / 0
Регистрация: 16.08.2019
Сообщений: 17
17.08.2019, 20:14  [ТС]
Значение в файле я указывала "от балды", может, в этом дело?
123457638902 (без пробелов)
0
88 / 24 / 8
Регистрация: 30.03.2019
Сообщений: 174
17.08.2019, 20:28
Цитата Сообщение от Amber17 Посмотреть сообщение
Значение в файле я указывала "от балды", может, в этом дело?
123457638902 (без пробелов)
да, попробуйте ввести число поменьше
0
0 / 0 / 0
Регистрация: 16.08.2019
Сообщений: 17
17.08.2019, 20:34  [ТС]
А не несколько чисел? Ведь это массив
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
17.08.2019, 20:44
Amber17, если не выйдет ,я не уверен но
Цитата Сообщение от Amber17 Посмотреть сообщение
fin >> n;
мне кажется (только кажется ) что возвращает значение не типа int ,попробуйте вывести значение которое выводит fin>>.

Добавлено через 3 минуты
Amber17, Вы пытаетесь задать размер массива, а не его элементы, тоесть к примеру float * arr = new float[5] создаст массив размером 5 элементов, а дальше Вы можете сделать уже arr[0] = 5.23; это уже инициализации объектов массива, тоесть первый объект массива будет равен 5.23

Добавлено через 4 минуты
Amber17,
Цитата Сообщение от ReYalp Посмотреть сообщение
попробуйте вывести значение которое выводит fin>>.
точнее даже не так , либо попытайтесь использовать
string line;
getline(fin, line);
float * arr = new float[stoi(line)];

Добавлено через 1 минуту
при условии что в первой строке ничего кроме числа нету.
0
88 / 24 / 8
Регистрация: 30.03.2019
Сообщений: 174
17.08.2019, 20:48
Цитата Сообщение от ReYalp Посмотреть сообщение
Вы пытаетесь задать размер массива, а не его элементы, тоесть к примеру float * arr = new float[5] создаст массив размером 5 элементов, а дальше Вы можете сделать уже arr[0] = 5.23; это уже инициализации объектов массива, тоесть первый объект массива будет равен 5.23
Может я не понял, но причем здесь инициализация первого элемента массива? Когда тут проблема с
std::bad_array_new_length
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
17.08.2019, 20:50
Ju-87, при том что возможно ТС не понимает что он делает ,такой вывод я сделал после
Цитата Сообщение от Ju-87 Посмотреть сообщение
да, попробуйте ввести число поменьше
Цитата Сообщение от Amber17 Посмотреть сообщение
А не несколько чисел? Ведь это массив
0
88 / 24 / 8
Регистрация: 30.03.2019
Сообщений: 174
17.08.2019, 20:52
Как видите при n = 5, ошибок никаких не возникает
Миниатюры
Возникло необработанное исключение по адресу 0x73A62CF2:  исключение Microsoft C++: std::bad_array_new_length  
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
17.08.2019, 20:53
Ju-87, а
Цитата Сообщение от Ju-87 Посмотреть сообщение
std::bad_array_new_length
появляется только в 3 случаях
1) array length is negative

2) total size of the new array would exceed implementation-defined maximum value

3) the number of initializer-clauses exceeds the number of elements to initialize

Only the first array dimension may generate this exception; dimensions other than the first are constant expressions and are checked at compile time.
(Взято с сайта cppreference.com).
0
88 / 24 / 8
Регистрация: 30.03.2019
Сообщений: 174
17.08.2019, 20:53
ReYalp,

Не по теме:

аа, понятно

0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
17.08.2019, 20:54
Ju-87, а при 123457638902?
Цитата Сообщение от Ju-87 Посмотреть сообщение
Как видите при n = 5, ошибок никаких не возникает
0
88 / 24 / 8
Регистрация: 30.03.2019
Сообщений: 174
17.08.2019, 20:55
Цитата Сообщение от ReYalp Посмотреть сообщение
появляется только в 3 случаях
1) array length is negative
2) total size of the new array would exceed implementation-defined maximum value
3) the number of initializer-clauses exceeds the number of elements to initialize
Only the first array dimension may generate this exception; dimensions other than the first are constant expressions and are checked at compile time.
(Взято с сайта cppreference.com).

Не по теме:

я знаю при каких случаях она возникает, зачем вы мне это скинули



Добавлено через 28 секунд
Цитата Сообщение от ReYalp Посмотреть сообщение
а при 123457638902?
Цитата Сообщение от ReYalp Посмотреть сообщение
2) total size of the new array would exceed implementation-defined maximum value
пожалуйста
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
17.08.2019, 20:56
Ju-87, но почему у меня не возникает ошибки при создании float * arr = new float[123457638902];?
0
88 / 24 / 8
Регистрация: 30.03.2019
Сообщений: 174
17.08.2019, 20:58
И кстати, если указать это число, вам придется еще в файле указывать значение овер90000 чисел, удобно, не правда ли?

Добавлено через 55 секунд
Цитата Сообщение от ReYalp Посмотреть сообщение
но почему у меня не возникает ошибки при создании float * arr = new float[123457638902
значит, она могла не указать значения всех элементов массива в файле...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.08.2019, 20:58
Помогаю со студенческими работами здесь

Что я сделала не так?Возникло необработанное исключение по адресу 0x73BBDDC2
#include &lt;locale&gt; #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;cstring&gt; #include &lt;Windows.h&gt; ...

Возникло необработанное исключение
#include &lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; void InputMatrix(int **matrix, int n, int m) { for (int i = 0;...

Необработанное исключение в "0x76fd2eec" Microsoft C++: std::bad_alloc
Вот такая ошибка в VS2008, тогда как в 2013 все работает без проблем. Если есть у кого возможность попробуйте запустить код в NetBeans'е....

Необработанное исключение по адресу, нарушение прав доступа при записи по адресу
вот само задание: Авиарейсы (номер рейса, пункт назначения, время вылета, дата вылета, стоимость билета, количество мест). Выбор по дате...

Исправить ошибку: необработанное исключение по адресу, нарушение прав доступа при записи по адресу
Помогите, пожалуйста, исправит ошибку. Необработанное исключение по адресу 0x77D88E19 (ntdll.dll) в Lab11.exe: 0xC0000005: нарушение...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru