Memmove() em C e C++

Memmove Em C E C



Hoje, vamos aprender uma das funções importantes da linguagem C e C++ que é a função memmove(). Mas antes disso, vamos dar uma olhada rápida no básico das linguagens C e C++. Também discutiremos quais funções estão em ambas as linguagens C/C++.

A linguagem de programação C é fácil e bastante eficaz para todos os propósitos. Com ele é possível a implementação de softwares como Windows OS, Bancos de Dados, Interpretadores e outras ferramentas. C é uma ótima linguagem para iniciantes aprenderem a codificação. É por isso que a programação C é conhecida como a linguagem mãe, pois serve como base para todas as outras linguagens de computador. A base da linguagem de programação C++ é baseada nas ideias de programação orientada a objetos (OOP). O usuário pode desenvolver e compreender os princípios do programa facilmente, pois o C++ possui uma estrutura clara. A linguagem de programação C\C++ é excepcionalmente versátil na execução de múltiplas funções e na troca de uma variável de um tipo para outro. A função memmove() é uma das funções de C/C++.







A função memmove() transfere “num” bytes simultaneamente do conteúdo do bloco de memória que é indicado pela fonte para o local indicado pelo destino. A função memmove() só é benéfica quando os objetos de origem e destino se sobrepõem e impede que o comportamento indefinido ocorra. Para saber mais sobre a função memmove(), vamos nos aprofundar e ver como implementar a sintaxe e exemplos na função memmove().



Sintaxe:

Aqui está o mesmo estilo de escrita e a implementação da função memmove() para as linguagens C e C++. Primeiro, escrevemos a palavra-chave “void” que significa que se a função não retornar nenhum valor, escrevemos o nome da função que queremos implementar, que é a função memmove(). Nos colchetes da função, escrevemos o destino para que possamos colocar os bytes “num” com a palavra-chave “void”. Em seguida, escrevemos o local de origem de onde obtemos os bytes “num”.







Parâmetros:

mão: Endereço para o local de armazenamento no qual os dados são copiados.

origem: Endereço para o local de armazenamento do qual os dados são copiados.



contar: Quantidade de dados a serem copiados da origem para o destino.

Valor de retorno:

Em troca, obtemos o endereço para a área de memória de destino. Dest é retornado pela função memmove().

Exemplo 1: Implementação da Função Memmove() em C

Vamos começar a implementar nosso primeiro e simples exemplo da linguagem C. Para começar a escrever, primeiro precisamos de um compilador C para que possamos escrever e executar o programa. Para isso, abra o compilador C e comece a implementar o programa.

#include
#include

int principal ( )
{
char ch1 [ ] = { 'EU' , 'eu' , 'n' , 'dentro' , 'x' } ;

int comprimento = sizeof ( ch1 ) / tamanho de ( ch1 [ 0 ] ) ;

printf ( 'Antes de aplicar a função memmove():' ) ;
por ( int eu = 0 ; eu < comprimento; i++ )
{
printf ( '%c' , ch1 [ eu ] ) ;
}

Caracteres * ch2 = & ch1 [ dois ] ;
memmove ( ch2, ch1, sizeof ( Caracteres ) * dois ) ;

printf ( ' \n \n Depois de aplicar a função memmove(): ' ) ;

por ( int eu = 0 ; eu < 5 ; i++ )
{
printf ( '%c' , ch1 [ eu ] ) ;
}
Retorna 0 ;

}


Sempre começamos incorporando os módulos principais do programa após iniciar o compilador. Esses módulos são os módulos de linguagem C incluídos. Simplesmente precisamos digitar uma linha de código para incluir esses módulos, em vez de dezenas de linhas de código para construir o módulo. O indicador “#” informa ao tradutor para carregar o módulo antes de usar a palavra-chave “include” para adicionar o módulo ao programa. O módulo “stdio.h” significa que o compilador aceita os dados do usuário e os mostra ao usuário. O segundo módulo do programa é “#include ” para que possamos usar as funções relacionadas à string no programa existente.

Em seguida, iniciamos a função main() para que possamos escrever a linha de código real que queremos implementar no programa. Na linha 6, declaramos o nome da matriz de caracteres “ch1” do tipo caractere. Em seguida, atribuímos um valor de caractere a ele. Depois disso, calculamos o comprimento do “ch1” e imprimimos a matriz de entrada “ch1” usando o “loop for”.

Depois disso, declaramos o ponteiro para o array “ch2” de um caractere de tipo e atribuímos o endereço do array “ch1” ao array “ch2”. Então, nós o imprimimos usando a instrução printf(). Vejamos a saída da ilustração anterior:

Exemplo 2: Implementação da Função Memmove() em C++

Aqui está o exemplo básico que mostra como a função memmove() funciona na linguagem C++. Para começar a escrever, primeiro precisamos de um IDE C++ para que possamos escrever e executar o programa. Para isso, abra o compilador C++ e comece a implementar o programa.

Depois de abrir o compilador, sempre começamos incluindo os arquivos de cabeçalho que são necessários para a linguagem de programação C++ para executar os programas. Para construir o programa e usar o método memmove(), primeiro incluímos os dois arquivos de cabeçalho fundamentais – “iostream” e “cstring”. C++ fornece várias maneiras de trabalhar com arrays e strings. Essas funções são disponibilizadas para uso quando o arquivo de cabeçalho é incluído em um programa com o arquivo de cabeçalho “#include  ” usado para copiar um determinado número de bytes de dados da origem para o destino. O arquivo de cabeçalho “#include ” é usado tanto para a entrada quanto para a saída dos dados do usuário. Em seguida, usamos o padrão “namespace std” em nosso código para usar a sintaxe padrão da linguagem de programação C++ para evitar que os objetos, métodos e parâmetros façam referência ao mesmo escopo em todo o programa.

#include
#include
usando namespace std;

int principal ( )
{
char src [ cinquenta ] = '1234567890' ;
char dest [ cinquenta ] = '0987654321' ;

cout << 'Antes de aplicar o memmove para o destino: ' << começar << endl;
memmove ( destino, src, 6 ) ;
cout << 'Depois de aplicar memmove para o destino: ' << mãos

Retorna 0 ;
}


Começamos a escrever a função main() para iniciar a execução de uma linha de código real. Na linha 7, há uma matriz de tipo de dois caracteres de comprimento 50 que é declarada como “src[50]” e “dest[50]”. Usamos a instrução “cout” para imprimir a mensagem “Before Applying memmove() to Destination: ”. Em seguida, passamos o parâmetro “dest” para imprimir o valor do array “dest”. Em seguida, a função memmove() é aplicada à variável de tipo de caractere declarada como “src[50]” e “dest[50]” para sobrepor o determinado número de bytes de origin(src) para target(dest) com o número de “contagem”. Isso identifica o número de bytes que são copiados de “src” para “dest”. Como você pode ver na ilustração a seguir, declaramos o número de contagem “6”.

Depois disso, usamos a instrução “cout” novamente para exibir a mensagem “After Applying memmove() to Destination: ”, e passamos a variável “dest” array do tipo “character”. Para interromper a execução do programa, devemos utilizar uma instrução de retorno na conclusão do programa. Em seguida, retornamos 0 para a função principal, indicando que o programa foi executado com sucesso e atingiu seu objetivo.

Você pode ver na seguinte saída do método memmove() que se houver sobreposição, por exemplo, quando o ponteiro inicial se mover para a letra 6, o ponteiro continuará sendo impresso e os seguintes caracteres serão sobrepostos. Este trecho de código C++ foi executado e os resultados são exibidos na imagem a seguir:

Conclusão

Neste artigo, aprendemos sobre a função memmove() nas linguagens de programação C e C++. Falamos sobre como a função memmove() funciona através do exemplo de C e C++ com uma explicação detalhada de cada linha de código. Esperamos que você ache este artigo útil para desenvolver seu conhecimento sobre a função memmove() em C e C++.