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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Альфа-бета отсечения http://www.cyberforum.ru/cpp-beginners/thread872533.html
Нужно реализовать алгоритм альфа-бета отсечений. Ребята,выручайте-не сдам лабу,не будет допуска к экзамену и это крах..
C++ Обработка массивов с использованием функций Вот такое задание: 1. Консольный ввод/вывод вещественного массив размером 4*6. 2. Переставляя столбцы заданной матрицы. расположить их в соответствии с ростом сумм модулей их отрицательных нечетных элементов. Вывести на экран полученный массив. 3. Определение сумм элементов в тех столбцах, которые содержат хотя бы один отрицательный... http://www.cyberforum.ru/cpp-beginners/thread872529.html
C++ Обработка текста. Структуры
Для заданного текста сформировать массивы, первый из которых содержит только те предложения, которые оканчиваются точкой. Второй массив - предложения с восклицательными знаками, третий - с вопросительными. В массивах предложения должны быть расположены в порядке их следования в тексте и каждое должно начинаться с порядкового номера предложения в исходном тексте, законченного закрывающей круглой...
C++ Поясните пожалуйста
Уважаемые, прокомментируйте пожалуйста этот вариант работы, что к чему... заранее благодарю //--------------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include <windows.h>
C++ Статический поток fstream http://www.cyberforum.ru/cpp-beginners/thread872475.html
Нужно создать класс, в котором будет статическое поле класса fstream (для записи и чтения из файла). С помощью статического метода поток нужно открыть. Поток не должен закрываться на протяжении всего времени работы программы. Так же, нужен метод который будет сбрасывать указатель файла на 0. Все задание скидывать не стал, но суть я думаю понятна. Код который я написал не хочет работать....
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); OemToChar(text, text); for(p=text; *p; ++p){ подробнее

Показать сообщение отдельно
Mitax
0 / 0 / 0
Регистрация: 30.04.2013
Сообщений: 15
21.05.2013, 03:11     Не выделяется память. выдаёт ошибку на строке st[m].fam = new char[];
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;  //сообщение при неверном вводе
        }
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru