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

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

Войти
Регистрация
Восстановить пароль
 
Maksumko
12 / 12 / 4
Регистрация: 13.06.2015
Сообщений: 60
#1

ошибка Run-Time Check Failure #2 - C++

13.07.2015, 20:05. Просмотров 250. Ответов 2
Метки нет (Все метки)

под конец програмки освобождал память и ошибка пропадала но происходило аварийное завершение ( подскажите где проблема .

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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
class publication
{
protected:
    string name;
    float price;
public:
    publication() :name("N/A"), price(0.0)
    {}
    virtual void setData()
    {
        cout << "\nВведите Название -> ";
        cin >> name;
        cin.ignore();
        cout << "\nВведите цену     -> ";
        cin >> price;
    }
    virtual void getData()const
    {
        cout << "\nНазвание книги : " << name
            << "\nЦена           : " << price;
    }
};
 
class book : public publication
{
private:
    int countPage;
public:
    book() :publication(), countPage(0)
    {}
 
    void setData()
    {
        publication::setData();
        cout << "\nВведите количество страниц -> ";
        cin >> countPage;
    }
    void getData()const
    {
        publication::getData();
        cout << "\nKоличество страниц : " << countPage;
    }
};
class audio : public publication
{
private:
    int hour;
    int minutes;
    int secondes;
public:
    audio() :publication(), hour(0), minutes(0), secondes(0)
    {}
    audio(int times)
    {
        if (times >= 3600)
        {
            minutes = times / 60;
            secondes = times - (minutes * 60);
        }
        if (minutes >= 60)
        {
            hour = minutes / 60;
            minutes = minutes - (hour * 60);
        }
    }
 
    void setData()
    {
        char tmpSymbol = '\x0';
        publication::setData();
        cout << "\nВведите продолжительность книги h:m:s -> ";
        cin >> hour >> tmpSymbol >> minutes >> tmpSymbol >> secondes;
    }
    void getData()const
    {
        publication::getData();
        cout << "\nПродолжительность книги h:m:s : "
            << hour << ":" << minutes << ":" << secondes;
    }
};
 
void addNewBook(publication** arr, int countBook);
void getAllBook(publication** arr, int countBook);
 
int main()
{
    setlocale(LC_ALL, "rus");
    int countBook = 0;
 
    cout << "\nСколько будет книг -> ";
    cin >> countBook;
 
    publication* pPublic = new publication[countBook];
    
    addNewBook(&pPublic, countBook);
    getAllBook(&pPublic, countBook);
 
 
    cout << "\n\n";
    return 0;
}
 
void addNewBook(publication** arr, int countBook)
{
    char tmpSymbol;
 
    for (int i = 0; i < countBook; i++)
    {
        cout << "\nУказать Аудио книгу или обычню a = audio | j = just book -> ";
        cin >> tmpSymbol;
 
        if (tmpSymbol == 'a')
        {
            arr[i] = new audio;
            arr[i]->setData();
        }
        if (tmpSymbol == 'j')
        {
            arr[i] = new book;
            arr[i]->setData();
        }
    }
}
void getAllBook(publication** arr, int countBook)
{
    cout << "\n\n---------------------------------------\n";
    for (int i = 0; i < countBook; i++)
    {
        arr[i]->getData();
        cout << "\n\n---------------------------------------\n";
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2015, 20:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ошибка Run-Time Check Failure #2 (C++):

Ошибка Run-Time Check Failure #2 - S - C++
#include&lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; int main() { //Матрица предпочтений int Predpochenia; ...

Ошибка в проге. Run-Time Check Failure #3 - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; int first (void) { setlocale(LC_ALL, &quot;Russian&quot;); int n; do ...

Ошибка Debug error. Run-time check failure #2. C++ - C++
Подскажите, что не так. #include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include &lt;cstdlib&gt; ...

Ошибка: Run-Time Check Failure #3 - The variable 'i' is being used without being initialized - C++
в чём ошибка (просьба подправить) #include &quot;stdafx.h&quot; #include &lt;math.h&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace...

Ошибка: Run-time check failure: variable 'C' is being used without being initialized - C++
Здравствуйте, Помогите решить одну проблему. Есть задание написать программу, которая находит определитель матрицы и умножает две...

Ошибка Run-Time Check Failure #3 - The variable 'y' is being used without being initialized - C++
Выскакивает вот тавкая вот ошибка, подскажите как исправить. Ошибка выскакивает, когда я ввожу переменную &quot;e&quot;, уже во время отладки...

2
Max Dark
шКодер самоучка
1841 / 1641 / 598
Регистрация: 09.10.2013
Сообщений: 3,664
Записей в блоге: 6
Завершенные тесты: 2
13.07.2015, 20:29 #2
Maksumko, Вы создаете массив публикаций, но внутри функций addNewBook и getAllBook работаете с ним как массивом указателей на публикации
пофиксить можно объявив pPublic как массив указателей:
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
#include <algorithm>
//...
// Функтор для удаления элементов
template<typename Pointer>
struct deleter{
    void operator(Pointer& ptr) {
        if (ptr) {
            delete ptr;
            ptr = NULL;
        }
    }
};
int main()
{
    setlocale(LC_ALL, "rus");
    int countBook = 0;
 
    cout << "\nСколько будет книг -> ";
    cin >> countBook;
 
    publication** pPublic = new publication*[countBook];
    // обнуляем массив указателей
    std::fill_n(pPublic, countBook, NULL);
    
    addNewBook(pPublic, countBook);
    getAllBook(pPublic, countBook);
 
    // освобождаем память
    std::for_each(pPublic, pPublic + countBook,
        deleter<publication*>());
    delete [] pPublic;
    cout << "\n\n";
    return 0;
}
//...
1
Maksumko
12 / 12 / 4
Регистрация: 13.06.2015
Сообщений: 60
13.07.2015, 20:29  [ТС] #3
ясненько
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2015, 20:29
Привет! Вот еще темы с ответами:

Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. - C++
int fun_mult(int *mas) { int zero; for (int i=0; i&lt;10; i++){ if (mas=0) zero=i; else break; }

Ошибка Run-Time Check Failure #3 - The variable 'k' is being used without being initialized - C++
2. Даны два вектора и найти угол между ними и модуль векторного произведения векторов X и Y. При вычислении использовать формулу: , где...

Ошибка: Run-time Check Failure #3-The variable 'k' is being used without being defined - C++
Ошибка: Run-time Check Failure #3-The variable 'k' is being used without being defined. Вот программа: #include &lt;iostream&gt; #include...

Ошибка Run-Time Check Failure #3 - The variable 'chcount' is being used without being initialized. - C++
Run-Time Check Failure #3 - The variable 'chcount' is being used without being initialized. Что за ошибка?


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

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

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