Salve a tutti,
essendo un newbie di C# vorrei farvi una banale domanda:
Come posso impostare una coda i cui elementi sono dei vettori?
Il problema che ho riscontrato è il seguente, assegnando dei valori differenti allo stesso vettore (diciamo "dati[]") ed effettuando un inserimento nella coda, il primo elemento(vettore) inserito nella coda viene modificato dal valore del secondo vettore inserito la volta successiva:
esempio:
public Queue<byte[]> coda = new Queue<byte[]>(100);
public byte[] dati = new byte[3];
dati[0] = 1; dati[1] = 1; dati[2] = 1; /*vettore di 3 elementi di tipo byte*/
coda.Enqueue(dati); /*accodo il vettore */
dati[0] = 2; dati[1] = 2; dati[2] = 2; /*cambio il contenuto di dati[] */
coda.Enqueue(dati);
/*accodo il nuovo dati[]*/
RISULTATO: coda[0] contiene il valore [2, 2, 2] che è lo stesso di coda[1].
la risposta che mi sono dato è che la memorizzazione dei vettori viene fatta per indirizzo e non per valore.
Un'altra prova che ho fatto è stata quella di inserire il vettore all'interno di una struct. Il risultato è lo stesso.
Qualcuno si è già scontrato con questa problematica?
Grazie e a presto.
mario.