Среднее арифметическое данных массива (который элемент структуры динамического массива)

Имеется следующая проблема. Есть функция для расчета среднего балла (индивидуальных и общего). Данные должны браться из внешнего массива. Однако, как я понял при пошаговой прогонке, они не берутся, и переменная остается со стандартным значением, выдаваемым при объявлении без инициализации. Значения в первую структуру вводятся с клавиатуры, чтобы не захламлять этот кусок кода включать не стал.

#include <iostream>
#include <string>
#include <Windows.h>
#include <utility>
#include <algorithm>

struct STUDENT
{
    std::string Name;
    short Year;
    int Rating[5];
};

struct StudAver
{
    double Average;
};

void sortRat(STUDENT* STUD, int numOfStud)
{
    StudAver* StAv = new StudAver[(sizeof(STUD->Rating) / sizeof(STUD->Rating[0]))];

        for (int j = 0; j < (sizeof(STUD->Rating) / sizeof(STUD->Rating[0])); ++j)
        {
            StAv[j].Average += STUD->Rating[j];
            StAv[j].Average /= (sizeof(STUD->Rating) / sizeof(STUD->Rating[0]));
            std::cout << StAv[j].Average;
        }

    double average = 0;

    for (int i = 0; i < numOfStud; ++i)
        average += StAv[i].Average;
    average /= (numOfStud);

    std::cout << "\nСписок студентов, чей балл превышает средний:\n";
    for (int k = 0; k < numOfStud; ++k)
    {
        if (StAv[k].Average > average)
            std::cout << STUD->Name << '\n';
    }

    delete[] StAv;
    StAv = nullptr;
}

int main()
{
sortRat(STUD->Rating, numOfStud);
}

Ответы (0 шт):