关于#c++#的问题

我编了一段这样的c++代码:

#include <iostream>
using namespace std;

int main() {
    int nums[] = {};
    for (int i = 0; i < 5; i ++) {
        nums[ i ] = i;
    }
    for (int i = 0; i < 5; i ++) {
        cout << nums[ i ] << "\n";
    }
    return 0;
}

我希望结果是

0
1
2
3
4

返回结果却是

0
5
2
3
4

我尝试过把第5行改成

int nums[ 5 ] = {};

却好了
有没有人帮我解答一下问题

int num[] = {} 实际数组只分配了一个元素空间,因此后面都越界了
int num[5] = {0},明确分配5个元素的空间