Хотите улучшить этот вопрос? Переформулируйте вопрос, чтобы он соответствовал тематике «Stack Overflow на русском».
Закрыт 10 месяцев назад.
struct disciplines {
char discipline[20];
};
struct students {
char group[10];
char discipline[20];
char teacher[30];
char name[30];
int mark;
};
void showAverage(std::vector<students>& student, std::vector<disciplines>& disList) {
disciplines str;
for (int i = 0; i < student.size(); i++) {
disciplines t1;
strcpy_s(t1.discipline, student[i].discipline);
for (int j = 0; j <= disList.size(); j++) {
disciplines t2;
strcpy_s(t2.discipline, disList[i].discipline);
if (t1.discipline == t2.discipline) break;
else{
strcpy_s(str.discipline, student[i].discipline);
disList.push_back(str);
}
}
}
}
Пытаясь скопировать поле из одного вектора в другой вызывает ошибку"Необработанное исключение по адресу 0x0F64ED76 (ucrtbased.dll) в Проект.exe: Недопустимый параметр был передан функции, для которой недопустимые параметры вызывают неустранимую ошибку." Срабатывает ошибка в строке
strcpy_s(t2.discipline, disList[i].discipline);
Поля являются массивами char. Первый такой же вызов отрабатывает нормально. В чем проблема и как ее решить?
Доступ в массив disList
почему-то делается по индексу i
, который лежит в диапазоне индексов массива student
. Почему? Эти массивы как-то связаны?
Тело цикла по j
никак не зависит от j
и индекс j
более нигде вообще не используется. Возможно индекс j
предназначался для доступа в массива disList
?
Но тогда почему условие во втором цикле использует <=
for (int j = 0; j <= disList.size(); j++) {
Доступ в disList
по такому индексу вызовет вылет за пределы массива.
Бессмысленное сравнение (1, 2, 3)
if (t1.discipline == t2.discipline)
Это условие всегда ложно. Следовательно на каждой итерации цикла по j
делается disList.push_back(str);
. Но так j
никогда не сможет догнать disList.size()
!
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть одна исключительная ситуация, но нужно чтобы на нее было 2 разных реакции
При отладки кода на c++, IDE выводит вот такое сообщение: FTH: (11040): * Fault tolerant heap shim applied to current processThis is usually due to previous crashes
Не могу понять в чем ошибка при наследовании, компилятор пишет, что не определен базовый класс, хотя все заголовки и определение класса я сделалВот...