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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
RocBoy-D
32 / 31 / 7
Регистрация: 10.03.2012
Сообщений: 362
#1

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

16.09.2012, 00:42. Просмотров 419. Ответов 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, на компьютере вроде работает.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2012, 00:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с массивом структур (C++):

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

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

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

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

Работа с массивом структур - C++
Помогите кто может изладить такую вот штуку на С /чистый Си/ А может готовое уже есть, оч надо!!!!!:( Дана информация о шести...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2012, 00:42
Привет! Вот еще темы с ответами:

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

Работа с массивом структур в функции через указатель на этот массив - C++
Добрый вечер. Имеется следующая задача: &quot;Разработайте программу, сохраняющую записи (порядковый номер ввода, число с плавающей точкой и...

Трудности с массивом структур - C++
По условию задачи, нужно сделать программу функциями: добавление данных об абоненте и запись в файл, удаление данных об абоненты и вывод...

Программа с массивом структур - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt; using namespace std; class TestContent { public: // int...


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

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

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