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

Не выделяется память. выдаёт ошибку на строке st[m].fam = new char[]; - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Альфа-бета отсечения http://www.cyberforum.ru/cpp-beginners/thread872533.html
Нужно реализовать алгоритм альфа-бета отсечений. Ребята,выручайте-не сдам лабу,не будет допуска к экзамену и это крах..
C++ Обработка массивов с использованием функций Вот такое задание: 1. Консольный ввод/вывод вещественного массив размером 4*6. 2. Переставляя столбцы заданной матрицы. расположить их в соответствии с ростом сумм модулей ... http://www.cyberforum.ru/cpp-beginners/thread872529.html
C++ Обработка текста. Структуры
Для заданного текста сформировать массивы, первый из которых содержит только те предложения, которые оканчиваются точкой. Второй массив - предложения с восклицательными знаками, третий - с...
C++ Поясните пожалуйста
Уважаемые, прокомментируйте пожалуйста этот вариант работы, что к чему... заранее благодарю //--------------------------------------------------------------------------- #include <stdio.h>...
C++ Статический поток fstream http://www.cyberforum.ru/cpp-beginners/thread872475.html
Нужно создать класс, в котором будет статическое поле класса fstream (для записи и чтения из файла). С помощью статического метода поток нужно открыть. Поток не должен закрываться на протяжении всего...
C++ С С на с++ #include<stdio.h> #include<windows.h> #define ISWR(c) (c>='А'&&c<='я'||c=='ё'||c=='Ё'||c==' ') #define ISB(c) (c>='А'&&c<='Я'||c=='Ё') int main(){ char text, *p=NULL; gets(text); ... подробнее

Показать сообщение отдельно
Mitax
0 / 0 / 0
Регистрация: 30.04.2013
Сообщений: 26

Не выделяется память. выдаёт ошибку на строке st[m].fam = new char[]; - C++

21.05.2013, 03:11. Просмотров 523. Ответов 10
Метки (Все метки)

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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
#include <string.h>
#include <fstream.h>
 
typedef struct TStud    //основная структура
{
    char *fam;          //фамилия
    int age;            //возраст
} Stud;
 
 
void addStud(Stud *st, int m)   //функция добавления студента
{
    st[m].fam = new char[];     //выделение памяти под строку
    cout << "Familija studenta " << m+1 << ": ";    //приглашение ввода
    cin >> st[m].fam;   //ввод фамилии
    cout << "Vozrast studenta: ";
    cin >> st[m].age;   //ввод возраста
    cout << "Dannie dobavleni" <<endl;
    getch();    //ожидание нажатия клавиши
}
 
 
 
void printStud(Stud *st, int m) //функция вывода данных о студенте
{
    cout << setw(20) << "Familja studenta" << setw(20) << "Vozrast" << endl;    //вывод шапки (cetw(20) - табулирование в 20 символов)
    for (int i=0; i<=m; i++)    //цикл по количеству студентов
    {
        cout << setw(20) << st[i].fam << setw(20) << st[i].age << endl; //вывод фамилии и возраста
    }
    getch();    //ожидание нажатия клавиши
}
 
 
void sortStud(Stud *st, int m)  //функция сортировки студентов
{
    Stud tmp;   // временные переменная
    int min;
    for(int i=0; i<m; i++)  //цикл по количеству студентов
    {
        min=i;  //минимальная запись
        for(int j=i+1; j<=m; j++)   //цикл от следующей до последней записи
            if (strcmp(st[min].fam,st[j].fam)>0) min=j; //если текущая фамилия раньше по алфавиту, чем min, запоминаем
        tmp=st[i];      //меняем указатели
        st[i]=st[min];  //на них
        st[min]=tmp;    //местами
    }
    cout << "Dannie otsortirovani" <<endl;
    getch();    //ожидание нажатия клавиши
}
 
void saveStud(Stud *st, int m)  //функция сохранения в файл
{
                ofstream f;     //файловая переменная
                f.open("rezult.txt");   //открытие файла
                f << setw(20) << "Familja studenta" << setw(20) << "Vozrast" << endl;;  //запись шапки
                for (int i=0; i<=m; i++)    //цикл по количеству студентов
                {
                    f << setw(20) << st[i].fam << setw(20) << st[i].age << endl;    //вывод фамилии и возраста в файл
                }
                f.close();      //закрытие файла
}
 
void main() //основная функция
{
    int n=-1;   //индекс последней записи
    char c;     // переменная для ввода пункта меню
    Stud stud[30];  //массив мтудентов
    while (true)    //пока не завершена работа
    {
        system("cls");  //очистка экрана
        cout << "1.Dobavit` studenta\n2.Prosmotr studentov\n3.Sortirovat`\n4.Save & Exit"<<endl;    //меню
        cin >> c;   //ввод пункта
        switch (c)  //в зависимости от выбора
        {
        case '1': addStud(stud,++n); break;     //запуск
        case '2': printStud(stud,n); break;     //соответствующей
        case '3': sortStud(stud, n); break;     //функции
        case '4': saveStud(stud,n); return; //выход
        default: cout << "Nevernij vibor, povtorite..."<<endl; getch(); break;  //сообщение при неверном вводе
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru