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

Работа с массивом структур - C++

Восстановить пароль Регистрация
 
RocBoy-D
32 / 31 / 6
Регистрация: 10.03.2012
Сообщений: 361
16.09.2012, 00:42     Работа с массивом структур #1
Здравствуйте! В задаче есть тип данных структура, которая состоит из массива типа int и количества элементов в массиве. Нужно написать функцию удаления одной записи из структуры.
C++ (Qt)
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
struct Vector
{
    int *v; // массив элементов
    int size; // размер массива
};
 
void DelVector (Vector *PVector, int &N)
{
    int num; // номер удаляемой записи
 
    cout << "Input number of array : ";
    cin >> num;
    for (int i = num; i < N - 1; i ++)
    {
        FreeMem (PVector + i);
        (PVector + i) -> size = (PVector + i + 1) -> size;
        (PVector + i) -> v = new int [(PVector + i) -> size];
        memmove ((PVector + i) -> v, (PVector + i + 1) -> v, (PVector + i) -> size);
    }
    FreeMem (PVector + N - 1);
    N --; //количество записей в структуре
}
 
void FreeMem (Vector *PVector)
{
    delete [] PVector -> v;
    PVector -> v = NULL;
}
После этих функций в структурах остаются какие-то случайные числа. Подскажите в чем ошибка?

Добавлено через 4 часа 1 минуту
Нашел в Интернете, что удалить структуру из массива структур нельзя, можно только сдвинуть их на одну позицию влево и уменьшить количество на единицу.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void DelVector (Vector *PVector, int &N)
{
    int num;
 
    cout << "Input number of array : ";
    cin >> num;
    for (int i = num; i < N - 1; i ++)
    {
       (PVector + i) -> size = (PVector + i + 1) -> size;
       (PVector + i) -> v = (PVector + i + 1) -> v;
    }
    N --;
}
Так ли это? На онлайн компиляторе появляется std::bad_alloc, на компьютере вроде работает.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2012, 00:42     Работа с массивом структур
Посмотрите здесь:

C++ неправильная работа с массивом структур
Работа с массивом структур C++
C++ Работа с массивом структур
C++ программа с массивом структур
Трудности с массивом структур C++
C++ описать структуру, создать класс, в котором описать 3 поля: два простых типа и массив структур. Создать в классе 4 функции работы с массивом структур
C++ Работа с массивом структур
C++ Работа с массивом структур

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 12:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru