Ho un problema, non riesco a capire come sfruttare il metodo di conteggio automatico per inizializzare un array. Vi riporto il codice di un esercizio che ho fatto:

codice:
//: C06:es_7.cpp
// inizializzazione aggregati
#include <iostream>
using namespace std;

int main() {
    double arr_d[3] = {1,2};
    
    int dim_arr = sizeof arr_d / sizeof *arr_d;
    cout << "arr_d ha " << dim_arr << " elementi" << endl;
    
    for (int i = 0; i < dim_arr; i++)
        cout << "arr_d[" << i << "] = " << arr_d[i] << endl;
        
    /* dalla stampa degli elementi di nota come arr_d[2] sia inizializzato
       automaticamente a 0 */
       
    double arr_d2[] = {2, 4.5};

    dim_arr = sizeof arr_d2 / sizeof *arr_d2;
    cout << "arr_d2 ha " << dim_arr << " elementi" << endl;
    
    for (int i = 0; i < dim_arr; i++)
        cout << "arr_d2[" << i << "] = " << arr_d2[i] << endl;
        
    /* dalla stampa degli elementi di nota come arr_d2 abbia 2 elementi, quelli
       creati tramite inizializzazione */

    arr_d2[2] = 5.7;
    cout << arr_d2[2] << endl;
    
    /* prima si e' creato un nuovo elemento arr_d2, ma questo non viene computato nella
       dimensione dell'array ! */

    dim_arr = sizeof arr_d2 / sizeof *arr_d2;
    cout << "arr_d2 ha " << dim_arr << " elementi" << endl;
    
    for (int i = 0; i < dim_arr; i++)
        cout << "arr_d2[" << i << "] = " << arr_d2[i] << endl;

}///:~
se notate i commenti e provate il codice vi accorgete che l'elemento arr_d2[2] sembra non essere gestito come gli altri.. come mai?