Problema com cópias de matrizes

Olá pessoal,

Estou com um super problema com matrizes:

Estou fazendo um programa onde utilizo várias matrizes [3][3], uma delas é a mais impotante e não posso perdê-la logo tenho que fazer cópias dela para outra matriz. Mas não estou conseguindo fazer isso.

Estou declarando outra matriz auxiliar onde faço:

matriz_auxiliar = matriz_original

mas isso não funciona porque depois que eu faço os testes necessários na matriz auxiliar a matriz original tb muda…

Alguém sabe o que pode estar ocorrendo???

Obrigado pela ajuda

Ola Marcos.

O problema é que quando vc faz:

copia = original;

vc igualou a referencia, e não fez copia nenhuma, então tudo que é modificação em um vai refletir no outro… tá mas java não existe ponteiro, isto já foi provado que não é bem assim…

eu aconselharia vc a fazer uma copia na não:

int[][] a = new int[3][3];
 ...

int[][] b = new int[3][3];
for(int x=0;x<3;x++){
   for(int y=0;y<3;y++){
      b[x][y] = a[x][y];
   }
}

Bruno,

o pior é que eu já tentei isso e até que pra aquele momento funcionaou mas depois acrescentei mais código e a matriz voltou a dar problema de uma olhada no código:

[code]
private void cima(int x, int z){
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
System.out.print(atual[i][j]);
System.out.print("\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
auxcima[i][j]= atual[i][j];

auxcima[x][z] = atual[x-1][z];
auxcima[x-1][z] = 0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if (auxcima[i][j] == meta[i][j])
NoLugar++;

R1 = NoLugar;
jTextField1.setText(Integer.toString(R1));
NoLugar = 0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
System.out.print(atual[i][j]);
System.out.print("\n");
}[/code]

Acrescentei dois conjuntos de for um no começo do código para visualizar como esta chegando a matriz original na função( no programa a matriz é chamada de atual) e depois coloquei o mesmo código de impressão da matriz no final para visualizar como a matriz está saindo da função e adivinha??? Tá saindo errado ela está sendo modificada em algum lugar e não sei qual é.

De uma olhada ai e v c vc pode me ajudar

Desde já obrigado

Bruno recebi uma notificação de resposta lá do GUJ e parece que o que eles disseram vai dar certo.

C vc quiser dar uma olhada:

http://www.guj.com.br/posts/list/21384.java#113082

Valeu cara

Até mais

sim sim sim, eu tinha esquecido do metodo arraycopy… mas tenta ai, é bem provavel que de certo sim.