Memmove() in C e C++

Memmove In C E C



Oggi impareremo una delle funzioni importanti del linguaggio C e C++ che è la funzione memmove(). Ma prima, diamo una rapida occhiata alle basi dei linguaggi C e C++. Discuteremo anche quali funzioni sono presenti in entrambi i linguaggi C/C++.

Il linguaggio di programmazione C è facile e abbastanza efficace per tutti gli scopi. Con esso è possibile l'implementazione di software come sistema operativo Windows, database, interpreti e altri strumenti. C è un ottimo linguaggio per i principianti con cui imparare la programmazione. Ecco perché la programmazione C è conosciuta come la lingua madre poiché funge da base per tutti gli altri linguaggi informatici. La base del linguaggio di programmazione C++ si basa sulle idee della programmazione orientata agli oggetti (OOP). L'utente può sviluppare e comprendere facilmente i principi del programma poiché il C++ ha una struttura chiara. Il linguaggio di programmazione C\C++ è eccezionalmente versatile nell'esecuzione di più funzioni e nel passaggio di una variabile da un tipo all'altro. La funzione memmove() è una delle funzioni di C/C++.







La funzione memmove() trasferisce simultaneamente “num” byte dal contenuto del blocco di memoria indicato dalla sorgente verso la locazione indicata dalla destinazione. La funzione memmove() è vantaggiosa solo quando gli oggetti sorgente e destinazione si sovrappongono e impedisce il verificarsi del comportamento indefinito. Per saperne di più sulla funzione memmove(), approfondiamo e vediamo come implementare la sintassi e gli esempi nella funzione memmove().



Sintassi:

Ecco lo stesso stile di scrittura e l'implementazione della funzione memmove() per entrambi i linguaggi C e C++. Per prima cosa scriviamo la parola chiave “void” che significa che se la funzione non restituisce alcun valore, scriviamo il nome della funzione che vogliamo implementare che è la funzione memmove(). Nelle parentesi funzione, scriviamo la destinazione in modo da poter inserire i byte 'num' con la parola chiave 'void'. Quindi, scriviamo la posizione di origine da cui otteniamo i 'num' byte.







Parametri:

mano: Indirizzo della posizione di archiviazione in cui vengono copiati i dati.

origine: Indirizzo della posizione di archiviazione da cui vengono copiati i dati.



contare: Quantità di dati da copiare dall'origine alla destinazione.

Valore di ritorno:

In cambio, otteniamo l'indirizzo dell'area di memoria di destinazione. Dest viene restituito dalla funzione memmove().

Esempio 1: implementazione della funzione Memmove() in C

Iniziamo a implementare il nostro primissimo e semplice esempio del linguaggio C. Per iniziare a scrivere, abbiamo prima bisogno di un compilatore C in modo da poter scrivere ed eseguire il programma. Per questo, apri il compilatore C e inizia a implementare il programma.

#include
#include

int principale ( )
{
car ch1 [ ] = { 'L' , 'io' , 'n' , 'in' , 'X' } ;

lunghezza int = sizeof ( cap1 ) / taglia di ( cap1 [ 0 ] ) ;

printf ( 'Prima di applicare la funzione memmove(): ' ) ;
per ( int io = 0 ; io < lunghezza; io++ )
{
printf ( '%c' , cap1 [ io ] ) ;
}

char * ch2 = & cap1 [ Due ] ;
memmove ( ch2, ch1, sizeof ( char ) * Due ) ;

printf ( ' \n \n Dopo aver applicato la funzione memmove(): ' ) ;

per ( int io = 0 ; io < 5 ; io++ )
{
printf ( '%c ' , cap1 [ io ] ) ;
}
Restituzione 0 ;

}


Iniziamo sempre incorporando i moduli del programma principale dopo aver avviato il compilatore. Questi moduli sono i moduli del linguaggio C in bundle. Abbiamo semplicemente bisogno di digitare una riga di codice per includere questi moduli, invece di dozzine di righe di codice per costruire il modulo. L'indicatore '#' informa il traduttore di caricare il modulo prima di utilizzare la parola chiave 'include' per aggiungere il modulo al programma. Il modulo 'stdio.h' significa che il compilatore accetta i dati dall'utente e li mostra all'utente. Il secondo modulo del programma è “#include ” in modo da poter utilizzare le funzioni relative alle stringhe nel programma esistente.

Quindi, avviamo la funzione main() in modo da poter scrivere l'effettiva riga di codice che vogliamo implementare nel programma. Nella riga 6 dichiariamo il nome dell'array di caratteri 'ch1' di tipo carattere. Quindi, gli assegniamo un valore di carattere. Successivamente, calcoliamo la lunghezza del 'ch1' e stampiamo l'array di input 'ch1' utilizzando il 'ciclo for'.

Successivamente, dichiariamo il puntatore all'array 'ch2' di un carattere di tipo e assegniamo l'indirizzo dell'array 'ch1' all'array 'ch2'. Quindi, lo stampiamo usando l'istruzione printf(). Vediamo l'output dell'illustrazione precedente:

Esempio 2: Implementazione della funzione Memmove() in C++

Ecco l'esempio di base che mostra come si comporta la funzione memmove() nel linguaggio C++. Per iniziare a scrivere, abbiamo prima bisogno di un IDE C++ in modo da poter scrivere ed eseguire il programma. Per questo, apri il compilatore C++ e inizia a implementare il programma.

Dopo aver aperto il compilatore, iniziamo sempre includendo i file di intestazione necessari al linguaggio di programmazione C++ per l'esecuzione dei programmi. Per costruire il programma e utilizzare il metodo memmove(), includiamo prima i due file di intestazione fondamentali: 'iostream' e 'cstring'. C++ fornisce diversi modi per lavorare con array e stringhe. Queste funzioni sono rese disponibili per l'uso quando il file di intestazione è incluso in un programma con il file di intestazione '#include  ' utilizzato per copiare un certo numero di byte di dati dall'origine alla destinazione. Il file di intestazione '#include ' viene utilizzato sia per l'input che per l'output dei dati dall'utente. Quindi, utilizziamo lo 'spazio dei nomi std' standard nel nostro codice per utilizzare la sintassi standard del linguaggio di programmazione C++ in modo da evitare che oggetti, metodi e parametri facciano riferimento allo stesso ambito nell'intero programma.

#include
#include
utilizzando lo spazio dei nomi std;

int principale ( )
{
char src [ cinquanta ] = '1234567890' ;
char dest [ cinquanta ] = '0987654321' ;

cout << 'Prima di applicare memmove a destinazione: ' << inizio << finel;
memmove ( destinazione, src, 6 ) ;
cout << 'Dopo aver applicato memmove a Destination: ' << mani

Restituzione 0 ;
}


Iniziamo a scrivere la funzione main() per avviare l'esecuzione di una vera e propria riga di codice. Nella riga 7 è presente un array di tipo a due caratteri di lunghezza 50 dichiarato come 'src[50]' e 'dest[50]'. Utilizziamo l'istruzione 'cout' per stampare il messaggio 'Prima di applicare memmove() a destinazione:'. Quindi, passiamo il parametro 'dest' per stampare il valore dell'array 'dest'. Quindi, la funzione memmove() viene applicata alla variabile di tipo carattere dichiarata come 'src[50]' e 'dest[50]' per sovrapporre un certo numero di byte da origin(src) a target(dest) con il numero di 'conteggio'. Questo identifica il numero di byte che vengono copiati da 'src' a 'dest'. Come puoi vedere nell'illustrazione seguente, abbiamo dichiarato il numero di conteggio '6'.

Successivamente, usiamo nuovamente l'istruzione 'cout' per visualizzare il messaggio 'Dopo l'applicazione di memmove() a Destination: ' e passiamo l'array variabile 'dest' di tipo 'character'. Per interrompere l'esecuzione del programma, dobbiamo utilizzare un'istruzione return alla conclusione del programma. Restituiamo quindi 0 alla funzione principale, indicando che il programma è stato eseguito correttamente e ha raggiunto il suo obiettivo.

Puoi vedere nel seguente output del metodo memmove() che se c'è una sovrapposizione, per esempio, quando il puntatore iniziale si sposta sulla lettera 6, il puntatore continua a stampare e i seguenti caratteri si sovrappongono. Questo frammento di codice C++ è stato eseguito e i risultati vengono visualizzati nell'immagine seguente:

Conclusione

In questo articolo, abbiamo appreso della funzione memmove() nei linguaggi di programmazione C e C++. Abbiamo parlato di come funziona la funzione memmove() attraverso l'esempio di C e C++ con una spiegazione dettagliata di ogni riga di codice. Ci auguriamo che questo articolo ti sia utile per sviluppare le tue conoscenze sulla funzione memmove() in C e C++.