Почему массив не видит число?

Вся проблема в том, что в терминале выводит огромные числа - 633345927 HP, -32757 HP которых не должно быть

#include <iostream>
#include <windows.h>


class Soldier
{
public:
    int healthPoints, attack;

    void getValues(int number)
    {
        srand(time(NULL));
        healthPoints = rand() % 5 + 1;
        attack = rand() % 5 + 1;
        std::cout << number << ". " << "HP: " << healthPoints << ";";
        std::cout << " ATK: " << attack << "     ";
    }
};

int main()
{   
    const int SIZE = 4;
    int firstArmy[SIZE];
    int secondArmy[SIZE];

    std::cout << "FIRST ARMY           ";
    std::cout << "SECOND ARMY" << std::endl;

    for (int i = 1; i < 5; i++)
    {
        Soldier firstArmy[i];
        firstArmy[i].getValues(i);
        Sleep(1000);

        Soldier secondArmy[i];
        secondArmy[i].getValues(i);
        Sleep(1000);

        std::cout << "" << std::endl;
    }
    
    for (int i = 1; i < 5; i++){
        Soldier firstArmy[i];
        Soldier secondArmy[i];
        secondArmy[i].healthPoints -= firstArmy[i].attack;
        firstArmy[i].healthPoints -= secondArmy[i].attack;
        // std::cout << i <<". " << firstArmy[i].healthPoints << "-" << secondArmy[i].attack << " = ";
        std::cout << secondArmy[i].healthPoints << " HP" << std::endl;
        std::cout << firstArmy[i].healthPoints << " HP" << std::endl;
    }
    return 0;
}

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