Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
41 / 40 / 23
Регистрация: 10.03.2012
Сообщений: 374
1

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

16.09.2012, 00:42. Показов 512. Ответов 0
Метки нет (Все метки)

Здравствуйте! В задаче есть тип данных структура, которая состоит из массива типа 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, на компьютере вроде работает.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2012, 00:42
Ответы с готовыми решениями:

Работа с массивом структур
Помогите кто может изладить такую вот штуку на С /чистый Си/ А может готовое уже есть, оч...

Работа с массивом структур
Всем привет!!! Пожаалусто помогите кому нетрудно))) Программирование задач с использованием...

Работа с массивом структур
Разработать программу, позволяющую добавлять данные структур с указанными полями в массив,...

Работа с массивом структур
Необходимо создать массив записей (структур) с определенными полями (марка автомобиля, рег. номер,...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.09.2012, 00:42

Работа с массивом структур
Есть структура: struct student { char fam; }; Объявлена: int N = 3; student *stud; stud =...

Неправильная работа с массивом структур
Помогите, пожалуйста: программа заключается в следующем: спроектировать структуру car, которая...

Работа с динамическим массивом структур
Односвязный список. Проблема (скорее всего) в строке ListPoint1 = pointer; Pointer использую как...

Массив структур. Работа с массивом через функции
Здравствуйте! Дано задание: 1) создать массив структур 2) заполнить его через ф-цию 3) вывести...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.