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

Ошибка при завершении программа. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ целое число К http://www.cyberforum.ru/cpp-beginners/thread322256.html
Дано целое число К. Вывести строку описания оценки, соответсвующей числу К(1-плохо, 2-неудовлетворительно, 3-удовлетворительно, 4-хорошо, 5-отлично). Если К не лежит в диапозоне от 1 до 5 то вывести...
C++ Создание двоичного файла Такая заморочка,нужно создать двоичный файл,вроде сделал все по правилам,но преподу не нравится,то что последовательность цифр в двоичном файле не должна отображаться в виде цифр,а должна... http://www.cyberforum.ru/cpp-beginners/thread322252.html
C++ считать с файла через ентер
Здравствуйте! Если считывать с файла вот так: freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); cin>>a>>b; то считается вот так, если число-пробел-число а если...
C++ подскажите как вывести позицию элемента
#include "stdafx.h" # include <iostream> # include <conio.h> # include <Windows.h> using namespace std; int main () { setlocale (LC_CTYPE, "Russian"); int n,k,v,m;
C++ как откинуть последнюю цифру от фисла? http://www.cyberforum.ru/cpp-beginners/thread322190.html
здравствуйте есть число: 399 995 надо получить 39 999 надо откинуть последнюю цифру...
C++ Вопрос экзамена: Подскажите свои соображения по-поводу вопросов: -Использование файлов, при создании програм.Определить для чего используються константы : GENERIC_READ и тд. тп. (ну если с консантами все ясно, то... подробнее

Показать сообщение отдельно
DigsiL
10 / 10 / 1
Регистрация: 14.01.2011
Сообщений: 113
18.06.2011, 23:02  [ТС]
Цитата Сообщение от pito211 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
void AddBook(CBook *&book,int &size)
{
        CBook *temp=new CBook [++size];
        for (int i=0;i<size;i++)
        {
                temp[i]=book[i];
        }
        book=temp;
}
1) Утечка памяти
2) Функция вообще ничего не делает, точнее передислоцирует book в другой участок памяти. Смысл?
Я с тобой полностью согласен покажи как правильно сделать вот мой код
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
#include <iostream>
#include <Windows.h>
 
using namespace std;
class CBook
{
public:
    CBook(void);
    void Input(char *author1,char *title1,int ID1);
    void Show ();
    ~CBook(void);
private:
    int ID;
    char *author;
    char *title;
};
CBook::CBook(void)
{
        author=NULL;
        title=NULL;
        ID=NULL;
}
 
void CBook::Input(char *author1,char *title1,int ID1)
{
    ID=ID1;
    author=new char [strlen(author1)+1];
    strcpy(author,author1);
    title=new char [strlen(title1)+1];
    strcpy(title,title1);
 
}
void CBook::Show()
{
    cout<<"ID:"<<ID<<endl;
    cout<<"Автор:"<<author<<endl;
    cout<<"Название книги:"<<title<<endl;
}
 
CBook::~CBook(void)
{
    if(author!=NULL&&title!=NULL)
    {
        delete []author;    
        delete []title;
    }
}
 
void AddBook(CBook *&book,int &size)
{
    CBook *temp=new CBook [++size];
    for (int i=0;i<size;i++)
    {
        temp[i]=book[i];
    }
    book=temp;
 
 
}
void main()
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    char author[20];
    char title[20];
    int ID=0;
    int key=0;
    int size=0;
    CBook *book;
    do
    {
        cout<<"1.Добавить книгу"<<endl;
        cout<<"2.Вывести книги"<<endl;
        cout<<"0.Выход"<<endl;
        cin>>key;
        switch (key)
        {
        case 1:
            {
                ID+=1;
                cin.ignore();
                cout<<"Введите Автора:";
                cin.getline(author,20);
                cout<<"Введите название книги:";
                cin.getline(title,20);
                if (size>0)
                {
                    AddBook(book,size);
                }
                else 
                {
                    book=new CBook[++size];
                }
                book[size-1].Input(author,title,ID);
            }break;
        case 2:
            {
                for (int i=0;i<size;i++)
                {
                    book[i].Show();
                }
            }break;
        case 0:
            {
                delete []book;
                return;
            }break;
        }
    }while(key);
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru