Il seguente codice è sicuro, a condizione che non legga alcun elemento dell'array della struct senza prima averlo impostato con un valore reale? Grazie.È corretto copiare i dati non inizializzati se sarà inutilizzato/impostato in seguito?
const int data_size = 5;
struct Testing
{
int data[data_size];
Testing(const int data[data_size])
{
std::copy(data, data + data_size, this->data);
}
};
int main()
{
int data[data_size];
data[2] = 57;
Testing t(data);
t.data[1] = 93;
}
Non so perché vorresti farlo, ma dovrebbe essere sicuro. Immondizia nella spazzatura, ma la spazzatura non dovrebbe cadere dal bidone della spazzatura e puzzare la memoria circostante. –
Con tipi non banalmente assegnabili è molto probabilmente pericoloso, e sicuramente un comportamento indefinito. Con tipi banalmente assegnabili, è * probabilmente * sicuro, nella maggior parte delle condizioni, ma sicuramente è ancora un comportamento indefinito. –
Ciao Ben, non capisco il tuo commento. Cosa intendi banalmente assegnabile? –