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 un'occhiata rapida alle basi delle lingue C e C ++. Discuteremo anche quali funzioni sono in entrambe le lingue C/C ++.

Il linguaggio di programmazione C è facile ed efficace per tutti gli scopi. È possibile l'implementazione di software come sistema operativo Windows, database, interpreti e altri strumenti. C è una grande lingua per i principianti con cui imparare la codifica. Ecco perché la programmazione C è conosciuta come la lingua madre poiché funge da base per tutti gli altri linguaggi di computer. La fondazione 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é C ++ ha una struttura chiara. Il linguaggio di programmazione C \ C ++ è eccezionalmente versatile nell'esecuzione di più funzioni e nel cambio di una variabile da un tipo a un altro. La funzione mmmove () è una delle funzioni di c/c++.

La funzione mimmove () trasferisce i byte "num" contemporaneamente dal contenuto del blocco di memoria che è indicato dalla sorgente verso la posizione indicata dalla destinazione. La funzione memove () è vantaggiosa solo quando gli oggetti di origine e destinazione si sovrappongono e impedisce il comportamento indefinito. Per saperne di più sulla funzione MemMove (), scaviamo in profondità e vediamo come implementare la sintassi e gli esempi nella funzione MemmMove ().

Sintassi:

Ecco lo stesso stile di scrittura e l'implementazione della funzione Memmove () per entrambi i linguaggi C e C ++. Innanzitutto, scriviamo la parola chiave "void", il che significa che se la funzione non restituisce alcun valore, scriviamo il nome della funzione che vogliamo implementare, che è la funzione mmmove (). Nelle fasce di funzione, scriviamo la destinazione in modo da poter posizionare i byte "num" con la parola chiave "vuoto". Quindi, scriviamo la posizione della fonte da dove otteniamo i byte "num".

Parametri:

dest: Indirizzo alla posizione di archiviazione in cui vengono copiati i dati.

src: Indirizzo alla posizione di archiviazione da cui vengono copiati i dati.

contare: Importo di dati da copiare dall'origine a destinazione.

Valore di ritorno:

In cambio, otteniamo l'indirizzo nell'area di memoria target. DEST viene restituito dalla funzione MEMMOVE ().

Esempio 1: Implementazione della funzione Memmove () in C

Iniziamo a implementare il nostro primo e semplice esempio della lingua 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.

#includere
#includere
int main ()

char ch1 [] = 'l', 'i', 'n', 'u', 'x';
int lunghezza = sizeof (ch1)/sizeof (ch1 [0]);
printf ("Prima di applicare la funzione mmove ():");
per (int i = 0; i< length; i++)

printf ("%c", ch1 [i]);

char *ch2 = & ch1 [2];
memove (CH2, CH1, sizeof (char)*2);
printf ("\ n \ nafter Applicing mmMove () funzione:");
per (int i = 0; i<5; i++)

printf ("%c", ch1 [i]);

restituzione 0;


Iniziamo sempre incorporando i moduli del programma principale dopo aver avviato il compilatore. Questi moduli sono i moduli in bundle c linguaggio. Dobbiamo semplicemente digitare una riga di codice per includere questi moduli, al contrario 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 "Includi" per aggiungere il modulo al programma. Lo "stdio.Il modulo 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 alla stringa nel programma esistente.

Quindi, iniziamo la funzione principale () in modo da poter scrivere la riga di codice effettiva che vogliamo implementare nel programma. Nella riga 6, dichiariamo il nome dell'array di caratteri "CH1" del carattere di tipo. Quindi, ci assegniamo un valore di carattere ad esso. Successivamente, calcoliamo la lunghezza del "CH1" e stampiamo l'array di input "CH1" usando il "for loop".

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 utilizzando 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 mmmove () 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 per il linguaggio di programmazione C ++ per l'esecuzione dei programmi. Per costruire il programma e utilizzare il metodo mmove (), includiamo innanzitutto 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 la copia di 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 "STD dello spazio dei nomi" standard nel nostro codice per utilizzare la sintassi standard del linguaggio di programmazione C ++ in modo da poter impedire agli oggetti, ai metodi e ai parametri di fare riferimento allo stesso ambito durante l'intero programma.

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

char src [50] = "1234567890";
char dest [50] = "0987654321";
cout<< "Before Appyling memmove to Destination: " << dest << endl;
Memmove (Dest, SRC, 6);
cout<< "After Appyling memmove to Destination: " << dest;
restituzione 0;


Iniziamo a scrivere la funzione principale () per avviare l'esecuzione di una riga di codice effettiva. Nella riga 7, c'è un array di tipo a due caratteri di lunghezza 50 che è dichiarato "Src [50]" e "Dest [50]". Utilizziamo l'istruzione "COUT" per stampare il messaggio, "Prima di applicare mmove () a destinazione:". Quindi, passiamo il parametro "dest" per stampare il valore dell'array "dest". Quindi, la funzione mmmove () viene applicata alla variabile del tipo di carattere dichiarato "SRC [50]" e "DEST [50]" per sovrapporre il certo numero di byte dall'origine (SRC) al bersaglio (dest) Numero di "conteggio". Questo identifica il numero di byte che vengono copiati da "SRC" a "DEST". Come puoi vedere nella seguente illustrazione, abbiamo dichiarato il numero di conteggio "6".

Successivamente, utilizziamo di nuovo l'istruzione "Cout" per visualizzare il messaggio, "Dopo aver applicato Memmove () a destinazione:" e passare l'array variabile "dest" di tipo "carattere". Per impedire all'esecuzione del programma, dobbiamo utilizzare una dichiarazione di restituzione alla conclusione del programma. Ritorniamo quindi alla funzione principale, indicando che il programma viene eseguito correttamente e raggiunto il suo obiettivo.

È possibile vedere nel metodo di uscita del seguente Memove () che se c'è sovrapposizione, ad esempio, quando il puntatore iniziale si sposta sulla lettera 6, il puntatore mantiene la stampa e i seguenti caratteri si sovrappongono. Questo frammento di codice C ++ è stato eseguito e i risultati vengono visualizzati nella seguente immagine:

Conclusione

In questo articolo, abbiamo appreso la funzione MEMMOVE () nei linguaggi di programmazione C e C ++. Abbiamo parlato di come funziona la funzione mmove () attraverso l'esempio di C e C ++ con una spiegazione dettagliata di ogni riga di codice. Speriamo che tu trovi questo articolo utile nello sviluppo delle tue conoscenze sulla funzione MOMMOVE () in C e C++.