9.4. Copiar arrays

Como o conteúdo de uma variável de um tipo array é uma referência a um objeto (tal como acontece com qualquer variável de tipo não primitivo), quando copiamos o seu valor para outra variável é a referência que estamos a copiar e não o array propriamente dito.

As instruções acima criam um único array de int e atribuem a duas variáveis diferentes a referência a esse objeto, como ilustrado na figura.

Esta situação é uma forma de aliasing. Quaisquer alterações aos elementos do array feitas através de uma das variáveis serão refletidas na outra.

Se não é isto que queremos, ou seja, se queremos uma cópia mesmo, no sentido em que queremos um objeto igual ao original mas independente dele, temos que construir um novo array e copiar os elementos do primeiro array para o novo, um a um.

Experimente executar o programa seguinte:

O resultado destas instruções é ilustrado na figura.

 


 

Anterior: 9.3. Número de elementos de um array

Seguinte: 9.5. Funções cujo resultado é um array