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?