2 / 2 / 1
Регистрация: 07.07.2015
Сообщений: 27
1

Ошибка при удалении динамического массива

08.02.2016, 11:58. Показов 1260. Ответов 3
Метки нет (Все метки)

Непонятная мне ошибка при удалении массива
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include <iostream>
#include <conio.h>
 
using std::cout;
using std::cin;
using std::endl;
 
struct Collection
{
    char name[20];
    int year;
    char color[10];
};
 
void Menu(int &q)
{
    cout << "1.Добавить в коллекцию.\n";
    cout << "2.Посмотреть коллекцию.\n";
    cout << "3.Выйти.\n\n";
 
    cout << "Ваш выбор: ";
    cin >> q;
 
    system("cls");
}
void ADD(Collection col[], int &i)
{
    cin.ignore(cin.rdbuf()->in_avail());
    cin.clear();
 
    cout << "Введите имя новой машины: ";
    cin.getline(col[i].name,20);
    cin.ignore(cin.rdbuf()->in_avail());
    cin.clear();
 
    cout << "Введите год машины: ";
    cin >> col[i].year;
    cin.ignore(cin.rdbuf()->in_avail());
    cin.clear();
 
    cout << "Введите цвет машины: ";
    cin.getline(col[i].color,10);
    cin.ignore(cin.rdbuf()->in_avail());
    cin.clear();
 
    ++i;
 
    system("cls");
}
void print(const Collection col[], int i)
{
    cout << "\t\tВаша коллекция:\n\n";
 
    for (int j = 0; j < i; ++j)
    {
        cout << "Марка машины: " << col[j].name << endl;
        cout << "Год машины: " << col[j].year << endl;
        cout << "Цвет машины: " << col[j].color << endl << endl << endl;
    }
 
    _getch();
    system("cls");
}
 
int main()
{
    setlocale(0, "");
 
    int q = 0, i = 0;
    Collection *col = new Collection[];
 
    while (1)
    {
        Menu(q);
        if (q == 1)
        {
            ADD(col, i);
            continue;
        }
        else if (q == 2)
            print(col, i);
 
        else if (q == 3)
            break;
 
        else
        {
            cout << "Неправильный ввод. Попробуйте еще раз";
            _getch();
            system("cls");
        }
    }
 
 
    delete[]col;
    return 0;
}
Миниатюры
Ошибка при удалении динамического массива   Ошибка при удалении динамического массива  
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2016, 11:58
Ответы с готовыми решениями:

Ошибка при удалении динамического массива
Добрый вечер! Ругается на HEAP CORRUPTION DETECTED в строке с delete vertex; В чём может быть...

Ошибка при удалении динамического массива
Доброго времени суток! ПРоблема заключается в том, что при попытке очистить память из под...

Ошибка SIGTRAP при удалении динамического 2D массива
Нужно было создать двухмерный динамический массив в форме &quot;пирамиды&quot;, скажем так, заполнить его...

Возникает ошибка при удалении динамического массива символов в деструкторе класса
Всем привет. Есть приватная переменная, указатель на строку wchar_t *pUAgent; В конструкторе...

3
Don't worry, be happy
17213 / 10089 / 1948
Регистрация: 27.09.2012
Сообщений: 25,184
Записей в блоге: 1
08.02.2016, 12:00 2
Лучший ответ Сообщение было отмечено IgRiK000 как решение

Решение

C++
1
Collection *col = new Collection[];//размер то укажите
1
2 / 2 / 1
Регистрация: 07.07.2015
Сообщений: 27
08.02.2016, 12:21  [ТС] 3
Спасибо
0
:)
Эксперт С++
4769 / 3263 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
08.02.2016, 12:59 4
Цитата Сообщение от Croessmah Посмотреть сообщение
//размер то укажите
ох уж этот msvc
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.02.2016, 12:59

Вылет программы при удалении динамического массива
Писал программу с использованием динамического массива, все компилилось нормально, но в какой-то...

Нужно ли при удалении динамического массива присваивать NULL?
Вот создал я динамический массив N на M: int **mas; mas=new int*; for(i=0;i&lt;n;i++) mas=new...

Heap corruption detected при удалении динамического массива
mystring.cpp - здесь происходит ошибка в функции MyString::operator на строке delete s. В чем тут...

Ошибка при удалении массива
Проблема в том, что при попытке добавить строки удаления массивов программа вылетает, если же их...


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

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

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