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

Структуры в С++ - C++

Восстановить пароль Регистрация
 
gen1992
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 23
28.11.2013, 23:55     Структуры в С++ #1
Вечер добрый) У меня в программе постоянно вылезает ошибка доступа к памяти (access violation) и я никак не могу разобраться в чем причина((( вот код программы:
Кликните здесь для просмотра всего текста
#include <iostream.h>
#include <stdio.h>
#include <.h>

using namespace std;

const int n=3;

struct student
{
char *FIO;
char *nomer_gruppy;
struct uspevaemost
{
char *predmet;
int ocenka;} usp[4];
};

void main();

void main()
{
student a[n];
int best_ocenka;
for (int i = 0; i < n; i++)
{
cout<<"Vvedite dannye o "<<i+1<<"-m studente:\n";
cout<<"VVedite Familiyu i inicialy:\n"; gets(a[i].FIO);
cout<<"Vvedite nomer gruppy:\n"; gets(a[i].nomer_gruppy);
for(int j=0; j<4; j++)
{
cout<<"Vvedite "<<j+1<<" predmet:\n"; gets(a[i].usp[j].predmet);
cout<<"Vvedite ocenku po nemu:\n"; cin>>a[i].usp[j].ocenka;
}
}
for (int i = 0; i < n; i++)
{
best_ocenka = a[i].usp[0].ocenka;
for(int j=1; j<4; j++)
if (a[i].usp[j].ocenka > best_ocenka)
best_ocenka = a[i].usp[j].ocenka;
cout<<a[i].FIO<<" iz "<<a[i].nomer_gruppy<<" gruppy. Luchschaya ocenka: "<<best_ocenka<<endl;
}
system("pause");
}


Ошибка вылезает именно во вложенном цикле:
gets(a[i].usp[j].predmet);

Добавлено через 22 минуты
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
#include <iostream.h>
#include <stdio.h>
#include <string.h>
 
using namespace std;
 
const int n=3;
 
struct student
{
    char *FIO;
    char *nomer_gruppy;
    struct uspevaemost
    {
        char *predmet;
        int ocenka;} usp[4];
};
 
void main();
 
void main()
{
    student a[n];
    int best_ocenka;
    for (int i = 0; i < n; i++)
    {
        cout<<"Vvedite dannye o "<<i+1<<"-m studente:\n";
        cout<<"VVedite Familiyu i inicialy:\n";     gets(a[i].FIO);
        cout<<"Vvedite nomer gruppy:\n";            gets(a[i].nomer_gruppy);
        for(int j=0; j<4; j++)
        {
            cout<<"Vvedite "<<j+1<<" predmet:\n";   gets(a[i].usp[j].predmet);
            cout<<"Vvedite ocenku po nemu:\n";      cin>>a[i].usp[j].ocenka;
        }
    }
    for (int i = 0; i < n; i++)
    {
        best_ocenka = a[i].usp[0].ocenka;
        for(int j=1; j<4; j++)
            if (a[i].usp[j].ocenka > best_ocenka)
                best_ocenka = a[i].usp[j].ocenka;
        cout<<a[i].FIO<<" iz "<<a[i].nomer_gruppy<<" gruppy. Luchschaya ocenka: "<<best_ocenka<<endl;
    }
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 23:55     Структуры в С++
Посмотрите здесь:

C++ Структуры
C++ СТРУКТУРЫ в СИ++
C++ Структуры.
C++ Структуры
Структуры C++
C++ Структуры
структуры C++
C++ структуры C++
Структуры C++
C++ Структуры c++
Структуры C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
29.11.2013, 00:20     Структуры в С++ #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
#include <iostream>
#include <string.h>
 
using namespace std;
 
const int n=3;
 
struct student
{
    char FIO[256];
    char nomer_gruppy[50];
    struct uspevaemost
    {
        char predmet[100];
        int ocenka;} usp[4];
};
 
void main()
{
    student a[n];
    int best_ocenka;
    for (int i = 0; i < n; i++)
    {
        cout<<"Vvedite dannye o "<<i+1<<"-m studente:\n";
        cout<<"VVedite Familiyu i inicialy:\n"; cin.ignore(1,'\n');   gets(a[i].FIO);
        cout<<"Vvedite nomer gruppy:\n";            gets(a[i].nomer_gruppy);
        for(int j=0; j<4; j++)
        {
            cout<<"Vvedite "<<j+1<<" predmet:\n";  cin.ignore(1,'\n'); gets(a[i].usp[j].predmet);
            cout<<"Vvedite ocenku po nemu:\n";      cin>>a[i].usp[j].ocenka;
        }
    }
    for (int i = 0; i < n; i++)
    {
        best_ocenka = a[i].usp[0].ocenka;
        for(int j=1; j<4; j++)
            if (a[i].usp[j].ocenka > best_ocenka)
                best_ocenka = a[i].usp[j].ocenka;
        cout<<a[i].FIO<<" iz "<<a[i].nomer_gruppy<<" gruppy. Luchschaya ocenka: "<<best_ocenka<<endl;
    }
    system("pause");
}
gen1992
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 23
29.11.2013, 21:17  [ТС]     Структуры в С++ #3
Цитата Сообщение от Alex566 Посмотреть сообщение
Строки в структуре динамические по этому ошибку выдавало.
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
#include <iostream>
#include <string.h>
 
using namespace std;
 
const int n=3;
 
struct student
{
    char FIO[256];
    char nomer_gruppy[50];
    struct uspevaemost
    {
        char predmet[100];
        int ocenka;} usp[4];
};
 
void main()
{
    student a[n];
    int best_ocenka;
    for (int i = 0; i < n; i++)
    {
        cout<<"Vvedite dannye o "<<i+1<<"-m studente:\n";
        cout<<"VVedite Familiyu i inicialy:\n"; cin.ignore(1,'\n');   gets(a[i].FIO);
        cout<<"Vvedite nomer gruppy:\n";            gets(a[i].nomer_gruppy);
        for(int j=0; j<4; j++)
        {
            cout<<"Vvedite "<<j+1<<" predmet:\n";  cin.ignore(1,'\n'); gets(a[i].usp[j].predmet);
            cout<<"Vvedite ocenku po nemu:\n";      cin>>a[i].usp[j].ocenka;
        }
    }
    for (int i = 0; i < n; i++)
    {
        best_ocenka = a[i].usp[0].ocenka;
        for(int j=1; j<4; j++)
            if (a[i].usp[j].ocenka > best_ocenka)
                best_ocenka = a[i].usp[j].ocenka;
        cout<<a[i].FIO<<" iz "<<a[i].nomer_gruppy<<" gruppy. Luchschaya ocenka: "<<best_ocenka<<endl;
    }
    system("pause");
}
От части это помогло, спасибо ))) но теперь программа некорректно считывает данные, проскакивая некоторые поля((
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
#include <iostream.h>
#include <stdio.h>
#include <string.h>
 
using namespace std;
 
struct student
{
    char FIO[25];
    char nomer_gruppy[6];
    struct uspevaemost
    {
        char predmet[30];
        int ocenka;} usp[4];
};
 
void main()
{
    const int n=3;
    student a[n];
    int best_ocenka;
    for (int i = 0; i < n; i++)
    {
        cout<<"Vvedite dannye o "<<i+1<<"-m studente:\n";
        cout<<"VVedite Familiyu i inicialy:\n";     gets(a[i].FIO);
        cout<<"Vvedite nomer gruppy:\n";            gets(a[i].nomer_gruppy);
        for(int j=0; j<4; j++)
        {
            cout<<"Vvedite "<<j+1<<" predmet:\n";   gets(a[i].usp[j].predmet);
            cout<<"Vvedite ocenku po nemu:\n";      cin>>a[i].usp[j].ocenka;
        }
    }
    for (int i = 0; i < n; i++)
    {
        best_ocenka = (int)(a[i].usp[0].ocenka);
        for(int j=1; j<4; j++)
            if ((int)(a[i].usp[j].ocenka) > best_ocenka)
                best_ocenka = (int)(a[i].usp[j].ocenka);
        cout<<a[i].FIO<<" iz "<<a[i].nomer_gruppy<<" gruppy. Luchschaya ocenka: "<<best_ocenka<<endl;
    }
    system("pause");
}
И скрин ввода во вложении
Миниатюры
Структуры в С++  
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
29.11.2013, 21:23     Структуры в С++ #4
В моей программе и эта ошибка была поправлена.
Цитата Сообщение от gen1992 Посмотреть сообщение
C++
1
2
3
4
5
6
7
cout<<"Vvedite dannye o "<<i+1<<"-m studente:\n";
* * * * cout<<"VVedite Familiyu i inicialy:\n"; cin.ignore(1,'\n'); * gets(a[i].FIO);
* * * * cout<<"Vvedite nomer gruppy:\n"; * * * * * *gets(a[i].nomer_gruppy);
* * * * for(int j=0; j<4; j++)
* * * * {
* * * * * * cout<<"Vvedite "<<j+1<<" predmet:\n"; *cin.ignore(1,'\n'); gets(a[i].usp[j].predmet);
* * * * * * cout<<"Vvedite ocenku po nemu:\n"; * * *cin>>a[i].usp[j].ocenka;
gen1992
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 23
29.11.2013, 21:34  [ТС]     Структуры в С++ #5
спасибо ))) заработало )))
Yandex
Объявления
29.11.2013, 21:34     Структуры в С++
Ответ Создать тему
Опции темы

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