С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Шифрование/дешифрование шифра Трисемуса с любым ключевым словом Нужно написать программу которая будет шифровать/дешифровать шифр трисемуса с любым ключевым словом. Очень нужно((( https://www.cyberforum.ru/ cpp-beginners/ thread2369378.html В чем проблема? C++
#include <stdio.h> #include <windows.h> #include <conio.h> #include "string.h" void main() { char st; unsigned int dec; int v; int err = 0;
C++ В чем проблема? #include <stdio.h> #include <conio.h> #define HB 5 void main(); } int a; int obr; int n; https://www.cyberforum.ru/ cpp-beginners/ thread2369360.html C++ Определение глубины заданного элемента на бинарном дереве https://www.cyberforum.ru/ cpp-beginners/ thread2369321.html
Имеется такое задание: Написать рекурсивную функцию, которая определяет глубину заданного элемента на дереве и возвращает –1, если такого элемента нет. Структура дерева: struct Node { int data; Node *left, *right; }; Формирование дерева выполняется случайным образом:
C++ Как реализовать структуру?
Есть две структуры студент и комната в которой он проживает. Как лучше реализовать ситуацию? Обязательно надо сделать так, чтоб можно было узнать информацию о проживающих в комнате и узнать информацию о комнате где живет студент. Ведь можно же сделать два списка так, чтоб в элементе студента была ссылка на комнату в которой он проживает и наоборот? Тогда можно будет сразу перейти по...
C++ Написать программу для работы с одномерным, двумерным и ступенчатым массивами Написать программу для работы с одномерным, двумерным и ступенчатым массивами. Разработать меню для функционирования программы. Предусмотреть ввод с клавиатуры и из файла. 1.Работа с одномерным массивом: а)-вывод элементов -найти max, min -прямая и обратная сортировка б)Использовать свойства и методы класса System Array: -вывод элементов -найти max, min -прямая и обратная сортировка https://www.cyberforum.ru/ cpp-beginners/ thread2369316.html
C++ Проектирование классов C++ Привет. Помогите пожалуйста с лабораторной работой. Перечислите несколько однотипных объектов и конкретные значения их свойств. Выделите классы из группы однотипных объектов. - Не менее 5 классов - Не менее 7 объектов каждого класса. - Не менее 3 свойств для каждого класса. https://www.cyberforum.ru/ cpp-beginners/ thread2369314.html Структуры и Файлы C++
Всем привет, дано условие, дошёл до определения общей стоимости товара для определенного поставщика, но почему-то после ввода поставщика ничего не выводит, в чём может быть проблема? Написать программу, содержащую сведения о товарах магазина. Каждая структура содержит поля - наименование товара, стоимость, количество, категория, поставщик. Написать программу, которая определяет общую стоимость...
C++ На основе созданного класса для работы с тригонометрическими комплексными числами модифицировать функции-элементы таким https://www.cyberforum.ru/ cpp-beginners/ thread2369307.html
На основе созданного класса для работы с тригонометрическими комплексными числами модифицировать функции-элементы таким образом, чтобы они допускали возможность сцепленного вызова.
C++ Дано 10 любых фамилий. Расположить их в алфавитном порядке https://www.cyberforum.ru/ cpp-beginners/ thread2369303.html
Дано 10 любых фамилий. Расположить их в алфавитном порядке. Решить задачу без сортировки самых строк, а используя массив указателей.
C++ Вычислить произведение матрицы на вектор и максимальный элемент полученного вектора
Реализовать следующую задачу с использованием статических и динамических массивов. Для доступа к элементам динамического массива использовать два подхода: через явное разыменования указателя и через индексы. Вычислить произведение матрицы на вектор и максимальный элемент полученного вектора.
C++ Указатели: вычислить сумму элементов массива, расположенных между первым и последним нулевыми элементами Реализовать следующую задачу с использованием указателей. В одномерном массиве, состоящем из n действительных элементов, вычислить сумму элементов массива, расположенных между первым и последним нулевыми элементами. https://www.cyberforum.ru/ cpp-beginners/ thread2369298.html
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
11.12.2018, 17:12 0

Массив большого размера не заполняется - C++ - Ответ 13148638

11.12.2018, 17:12. Показов 1475. Ответов 3
Метки (Все метки)

Лучший ответ Сообщение было отмечено DioxiT как решение

Решение

Функция sortMerge рекурсивная, следовательно вызывается она в данном случае не 1, а https://www.cyberforum.ru/cgi-bin/latex.cgi?n \cdot log(n) раз. Выделение памяти в вашем коде вижу, а вот освобождение - нет. Когда память закончится, вместо указателя на участок памяти вы получите nullptr от функции malloc() или исключение std::bad_alloc от оператора new. Всё как у вас на скринах.

Вывод: после использования память нужно освобождать.

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
void sortMerge(int *a, int l, int r)
{
    if (l == r) return; //границы сомкнулись
    int mid = (l + r) / 2; //определение середины массива
 
    //рекурсивный вызов сортировки каждой половины массива
    sortMerge(a, l, mid);
    sortMerge(a, mid + 1, r);
 
    int i = l; //начало первого пути
    int j = mid + 1; //начало второго пути
 
    int *temp = new int[r - l + 1]; //создание дополнительного массива
    for (int stp = 0; stp < r - l + 1; stp++)
    {
        if ((j > r) || ((i <= mid) && (a[i] < a[j])))
        {
            temp[stp] = a[i];
            i++;
        }
        else
        {
            temp[stp] = a[j];
            j++;
        }
    }
    for (int stp = 0; stp < r - l + 1; stp++)
        a[l + stp] = temp[stp];
 
    // Освобождение памяти !!!
    delete[] temp;
}


Вернуться к обсуждению:
Массив большого размера не заполняется C++
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Блог
11.12.2018, 17:12
Готовые ответы и решения:

Статический массив большого размера
Здраствуйте, скорее всего данная проблема у многих есть, этот код вызывает ошибку на этапе...

Как создать массив большого размера
В программе будет использоваться массив большого размера. Оперативная память - 512 МБ Создаю...

Файл или массив большого размера вывести на экран через буфер маленького размера
Приветствую! Суть: нужно продеть слона int slon длиной 13467 через игольное ушко byte uho = new...

Как создать массив большого размера?
Мне необходимо создать массив очень большой размерности - порядка 300 строк на 29^5*5...

3
11.12.2018, 17:12
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
11.12.2018, 17:12
Помогаю со студенческими работами здесь

Плавное изменение размера окна, когда ItemsSource у ItemsControl очищается и заполняется
Подскажите как это сделать? &lt;view9:ErrorMessageControl Grid.Column=&quot;0&quot; ...

Дан массив А размера N. Сформировать новый массив В того же размера по следующему правилу: элемент Вк равен сумме элемен
Дан массив А размера N. Сформировать новый массив В того же размера по следующему правилу: элемент...

Дана прямоугольная матрица А размера mхn и массив В логических переменных размера m. По матрице А получить массив В
Дана прямоугольная матрица А размера mхn и массив В логических переменных размера m. По матрице А...

ImageView большого размера
Всем привет, подскажите как правильно сделать , у меня есть картинка большого размера 4000х2000 и...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru