4 / 4 / 5
Регистрация: 30.08.2012
Сообщений: 155
1

В динамическом массиве удалить N элементов, начиная с номера K (ошибка)

03.06.2015, 22:28. Показов 1141. Ответов 1
Метки нет (Все метки)

Помогите, как исправить ошибку? Нужно из массива arr , который перед этим формируется рандомно. удалить N элементов начиная с номера K. у меня возникает ошибка heap corruption detected
Помогите исправить ошибку!

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 DeleteArray(int* &arr, int &arraySize)
{
    int n; //сколько элементов нужно уничтожить
    cin >> n;
    int k; //с какого элемента начиная нужно уничтожить
    cin >> k;
    if (k >= 0 && k <= arraySize && n <= arraySize)
    {
        int new_size = arraySize-n;
        int* temp = new int[new_size];
        int j = 0;
        for (int i = 0; i < arraySize; i++)
        {
            for (int j = 0; j < k; j++)
            {
                temp[j] = arr[i];
                j++;
            }
            for (int q = k + n; q < arraySize;q++)
            {
                temp[q] = arr[i];
                q++;
            }
        }
        
    
 
        delete[] arr;
        arr = temp;
        arraySize = new_size;
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2015, 22:28
Ответы с готовыми решениями:

Удалить N элементов массива начиная с номера K
2.Удалить N элементов, начиная с номера K и вывести полученный массив на печать.

Как применяя erase удалить в векторе n элементов, начиная с номера k?
Помогите, как это записать, чтобы не возникало ошибок? arr.erase(arr.begin() + k, arraySize -...

Указатели . Удалить из одномерного массива элемент с заданным номером, добавить К элементов, начиная с заданного номера
Сформировать одномерный массив. Удалить из него элемент с заданным номером, добавить К элементов,...

Сформировать одномерный массив. Удалить из него К элементов, начиная с заданного номера, добавить элемент с заданным ключом
Сформировать одномерный массив. Удалить из него К элементов, начиная с заданного номера, добавить...

1
528 / 430 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
03.06.2015, 23:57 2
C++
1
2
3
4
5
6
7
8
9
10
11
void DeleteArray(int *arr, int &arraySize)
{
    int n; //сколько элементов нужно уничтожить
    std::cin >> n;
    int k; //с какого элемента начиная нужно уничтожить
    std::cin >> k;
    for (int i = k + n; i < arraySize; ++i)
        arr[i - n] = arr[i];
 
    arraySize = arraySize-n;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2015, 23:57
Помогаю со студенческими работами здесь

Добавление k строк, начиная с номера n в рваном массиве
1. Создать рваный массив 2. Добавить k строк, начиная с номера n

Удалить каждый 3-ий элемент в созданном динамическом массиве
Помогите, пожалуйста, довести до ума:( #include &lt;iostream&gt; #include &lt;math.h&gt; #include...

Удалить несколько последних значений в динамическом массиве
Получил задание сделать задачу с использованием динамических таблиц и возник вопрос если я...

Не могу найти ошибку с подсчетом суммы элементов в интервале[a,b] в динамическом одномерном массиве массиве.
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include &lt;iomanip&gt;...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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