Ir para o conteúdo
alves077

[Dúvida] Percorrer array 2D

Mensagens Recomendadas

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

Editado por alves077

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
hmiguel

Suspeito que andas a estudar a matriz de Hadamard :D

hadamard1-16.gif

Editado por hmiguel

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.