Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

alves077

[Dúvida] Percorrer array 2D

Recommended Posts

alves077

Boa tarde,

[edit]

Estou com um problema, se alguém tiver uma ideia...

Como posso copiar partes de um array para outro array, com o memcpy ou strcpy consigo copiar partes de um array para outro?

Obrigado pela atenção,

alves077

Edited by alves077

Share this post


Link to post
Share on other sites
hmiguel

Suspeito que andas a estudar a matriz de Hadamard :D

hadamard1-16.gif

Edited by hmiguel

"Homem que é Homem não usa Java!"

Share this post


Link to post
Share on other sites
pmg

O strcpy(), pela sua propria natureza, copia parte dum array para outra. A parte que ele copia é a parte que vai desde o principio do array original até (inclusive) ao primeiro elemento com valor zero.

Com o memcpy() podes especificar um determinado numero de elementos.

Mas o meu conselho é fazeres um (ou dois (ou tres -- nao mais que isso)) ciclo para seleccionar e copiar o que pretendes.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
alves077

Sim hmiguel...

Tenho um ciclo que percorre as linhas e queria copiar a linha, só que as vezes posso copiar metade da linha, o problema e que tenho uma linha inteira com uma string, isto é, fecho com \0, uma linha, e não estou conseguir copiar todo bem, fica pela 1ª linha bem copiada. Estou a usar o memcpy, digo o array destino, o array origem e o tamanho que é igual á metade do array. Mas não está-me a dar bem.. alguma ajuda?

Obrigado pela atenção,

alves077

Share this post


Link to post
Share on other sites
pmg

... Estou a usar o memcpy, digo o array destino, o array origem e o tamanho que é igual á metade do array ...

Não te esqueças de incluir o elemento de valor zero na cópia.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
alves077

O código é algo do genero:

for(pos=0;pos<rows;pos++)
{
   memcpy(&tab[pos_iniclal][pos+pos_fim],temp[pos], strlen(temp[pos]));
}
tab[pos_inicial][pos+pos_fim+1]='\0';

A ideia e em cada linha da matriz temp que tem metade das colunas da matriz tab, copiar uma linha inteira como string, porque na matriz temp cada linha acaba com o \0, directamente para o tab com o memcpy. sem ter que percorrer caracter a caracter.

Obrigado pela atenção,

alves077

Share this post


Link to post
Share on other sites
pmg

O que é que tens contra o strcpy()? ???!?!?!?!#%@$@!??

for(pos=0;pos<rows;pos++)
{
   strcpy(&tab[pos_iniclal][pos+pos_fim], temp[pos]);
}

Se queres usar a tua versao passa a atribuicao do '\0' para dentro do ciclo

for(pos=0;pos<rows;pos++)
{
   memcpy(&tab[pos_iniclal][pos+pos_fim],temp[pos], strlen(temp[pos]));
tab[pos_inicial][pos+pos_fim+1]='\0';
}


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.