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

При добавлении студента, сбивается вся структура, и при выводе всего списка студентов, выводит какой то мусор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Простой парсер - как перебрать варианты строки http://www.cyberforum.ru/cpp-beginners/thread1234636.html
Всем привет!Опыт программирования на си++ всего месяц-c# около 4 а делфи один год.Решил их кинуть(c# и делфи) и писать все на си++.Если что я 12 летний школьник поэтому обьясните попонятней.VCL знаю неплохо-про инклуды и не говорите-давайте сразу код.Ну хватит тут анкету писать, вот сам и впопрос.Я пишу простенький парсер,не знаю как перебрать варианты строки.Вот код: #include <vcl.h> #include...
C++ Не выполняется код в цикле в приведенном коде Не могу понять, почему не выполняется код в цикле в этом коде: // sp_Ch5P255_Exercise05 /// Занятия по книге Стивена Праты "Язык программирования С++" (2012, 6-е издание). /// Упражнения по программированию. Глава 5, страница 255, упражнение 5. /* Предположим, что вы продаете книгу по программированию на языке C++ для начинающих. Напишите программу, которая позволит ввести ежемесячные... http://www.cyberforum.ru/cpp-beginners/thread1234627.html
C++ Передача параметра по константной ссылке - что это?
объясните мне пожалуйста что такое передача параметра в функцию по константной ссылке? я просто вообще не могу представить что значит & в параметре функции... 2 года как изучаю си, а такое увидел только недавно... & это же операция взятия адреса, я ее знаю только так... но как она может быть параметром убей не пойму...
C++ Задание директории gcc
Здравствуйте. Первый раз работаю с gcc. Не получается задать директорию для работы. То есть собирается только то, что лежит в C:\MinGW\bin, а это неудобно. Предполагаю, что надо найти какую-то системную переменную PATH и прописать туда директорию, в которой я хочу хранить проект. Но я не представляю, как она выглядит, где ее найти и, что конкретно в нее писать. И в какую директорию тогда надо...
C++ Послать дополнительный клик мышкой http://www.cyberforum.ru/cpp-beginners/thread1234523.html
Вот есть рабочий код void __fastcall TfMain::reTextContextPopup(TObject *Sender, TPoint &MousePos, bool &Handled) { tagINPUT *i = new tagINPUT; //вариант 1 i->type = 0; i->mi.dx = 0; i->mi.dy = 0; i->mi.mouseData = 0;
C++ Можно ли сделать так чтобы к классу можно было бы одновременно обращаться как к массиву подскажите можно ли сделать так чтобы к классу можно было бы одновременно обращаться как к массиву? т.е. не массив классов я имею ввиду, а что то типа класса TStrings в делфи, т.е. к элементу класса чтобы можно было поставить и обратиться к какому то массиву внутри класса... это что надо оператор перегружать или как? подробнее

Показать сообщение отдельно
andreyananas
 Аватар для andreyananas
17 / 17 / 5
Регистрация: 15.10.2013
Сообщений: 804
26.07.2014, 23:53  [ТС]     При добавлении студента, сбивается вся структура, и при выводе всего списка студентов, выводит какой то мусор
Цитата Сообщение от alsav22 Посмотреть сообщение
Потому что в функции значение stud меняется, а если передавать по значению, то изменится значение у копии, а у оригинала останется тем же.
Вот функция тоже меняет stud
Но тут достаточно *stud
Так в чем отличия?
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
void EditStud(Student * stud, int nSize) // функция редактирования данных студентов
{
    char SerchName[NAME_SIZE] = "";
    char SerchSurname[NAME_SIZE] = "";
    cout << " Enter name student what want edit: ";
    cin >> SerchName;
    cout << " Enter surname student what want edit: ";
    cin >> SerchSurname;
 
    int Index;
    for (int i(0); i < nSize; ++i)
    {
        if (0 == strcmp(stud[i].sSurname, SerchSurname)) // ищем студента 
        {
            if (0 == strcmp(stud[i].sName, SerchName)) // проверяем совпадает Фамилия с Именем студента
            {
                Index = i;
                break;
            }
        }
        else if (i == nSize - 1)
        {
            cout << SerchName << ' ' << SerchSurname << " - NOT FOUND! " << endl; // выход из функции, если такого студента нету
            return;
        }
    }
 
    Show(Index, stud); // показываем данные студента, которые хотим изменить
    cout << endl;
    cout << " Enter name [2 - 14]: ";
    cin >> stud[Index].sName;
    cout << " Enter Surname [2 - 14]: ";
    cin >> stud[Index].sSurname;
    cout << " Enter year [4 digits]: ";
    cin >> stud[Index].iYear;
    cout << " Enter five ratings [1 - 5]: ";
    double dSum(0);
    for (int i(0); i < MARKS_NCOUNT; ++i)
    {
        cin >> stud[Index].Marks[i];
        dSum += stud[Index].Marks[i];
    }
    stud[Index].dAverage = dSum / MARKS_NCOUNT;
}
Добавлено через 3 минуты
Или это не считается изменой структуры, а просто перезапись в нее?

Следовательно для изменения указателя (в размере) в функции, нужно в параметрах создавать ссылку на указатель (*&pStAr) ???
 
Текущее время: 17:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru