Memmove in C und C ++

Memmove in C und C ++

Heute lernen wir eine der wichtigsten Funktionen der C- und C ++ - Sprache, die die Memmove () -Funktion ist. Lassen Sie uns vorher jedoch einen kurzen Blick auf die Grundlagen der C- und C ++ - Sprachen werfen. Wir werden auch diskutieren, welche Funktionen in beiden C/C ++ - Sprachen sind.

Die C -Programmiersprache ist für alle Zwecke einfach und sehr effektiv. Die Implementierung von Software wie Windows -Betriebssystemen, Datenbanken, Dolmetscher und anderen Tools ist damit möglich. C ist eine großartige Sprache für Anfänger, mit denen die Codierung lernen kann. Deshalb wird C -Programmierung als Muttersprache bezeichnet, da sie als Grundlage für alle anderen Computersprachen dient. Die Grundlage der C ++-Programmiersprache basiert auf den Ideen der objektorientierten Programmierung (OOP). Der Benutzer kann die Prinzipien des Programms leicht entwickeln und verstehen, da C ++ eine klare Struktur hat. Die C \ C ++ - Programmiersprache ist außergewöhnlich vielseitig bei der Ausführung mehrerer Funktionen und dem Umschalten einer Variablen von einem Typ zu einem anderen. Die Funktion memmove () ist eine der Funktionen von C/C++.

Die Funktion memmove () überträgt „Num“ -Bytes gleichzeitig aus dem Inhalt des Speicherblocks. Die Funktion memmove () ist nur von Vorteil, wenn sich die Quell- und Zielobjekte überlappen und das undefinierte Verhalten nicht auftreten. Um mehr über die Funktion memmove () zu erfahren, lassen Sie uns tief graben und sehen, wie die Syntax und Beispiele in der Funktion memmove () implementiert werden können.

Syntax:

Hier ist der gleiche Schreibstil und die Implementierung der Memmove () -Funktion für C- und C ++ - Sprachen. Zunächst schreiben wir das Schlüsselwort "void". In den Funktionsklammern schreiben wir das Ziel, damit wir die "Num" -Bytes mit dem Schlüsselwort "void" platzieren können. Dann schreiben wir den Quellstandort, von wo aus wir die "Num" -Bytes bekommen.

Parameter:

Ziel: Adresse an den Speicherort, an dem die Daten kopiert werden.

SRC: Adresse an den Speicherort, von dem die Daten kopiert werden.

zählen: Datenmenge, die von der Quelle zum Ziel kopiert werden können.

Rückgabewert:

Im Gegenzug erhalten wir die Adresse in den Zielspeicherbereich. Dest wird von der Memmove () -Funktion zurückgegeben.

Beispiel 1: Implementierung der Funktion memmove () in c

Lassen Sie uns unser erstes und einfaches Beispiel für die C -Sprache implementieren. Um mit dem Schreiben zu beginnen, brauchen wir zuerst einen C -Compiler, damit wir das Programm schreiben und ausführen können. Öffnen Sie dafür den C -Compiler und beginnen Sie mit der Implementierung des Programms.

#enthalten
#enthalten
int main ()

char ch1 [] = 'l', 'i', 'n', 'u', 'x';
int länge = sizeof (ch1)/sizeof (ch1 [0]);
printf ("Vor dem Auftragen von MemMove () -Funktion:");
für (int i = 0; i< length; i++)

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

char *ch2 = & ch1 [2];
memmove (ch2, ch1, sizeof (char)*2);
printf ("\ n \ nafter anwenden memmove () Funktion:");
für (int i = 0; i<5; i++)

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

Rückkehr 0;


Nach dem Start des Compilers beginnen wir immer mit den Kernprogrammmodulen. Diese Module sind die gebündelten C -Sprachmodule. Wir müssen lediglich eine Codezeile eingeben, um diese Module einzuschließen, im Gegensatz zu Dutzenden von Codezeilen, um das Modul zu konstruieren. Die Anzeige "#" informiert den Übersetzer, das Modul zuerst zu laden, bevor das Schlüsselwort "include" verwendet wird, um das Modul zum Programm hinzuzufügen. Das „Stdio.H ”-Modul bedeutet, dass der Compiler die Daten vom Benutzer akzeptiert und dem Benutzer zeigt. Das zweite Modul des Programms ist „#include“, damit wir die von String bezogenen Funktionen im vorhandenen Programm verwenden können.

Dann starten wir die Funktion main (), damit wir die tatsächliche Codezeile schreiben können, die wir im Programm implementieren möchten. In Zeile 6 deklarieren wir den Charakter -Array -Namen "CH1" des Typs. Dann weisen wir ihm einen Zeichenwert zu. Danach berechnen wir die Länge des „CH1“ und drucken das Eingangsarray „CH1“ mit der „für Schleife“ mit dem „für Schleifen“.

Danach deklarieren wir den Zeiger auf das "CH2" -Array eines Typs -Zeichens und weisen die Adresse des „CH1“ -Arrays dem „CH2“ -Array zu. Dann drucken wir es mit der Anweisung printf () aus. Sehen wir uns die Ausgabe der vorherigen Abbildung an:

Beispiel 2: Implementierung der Funktion memmove () in c++

Hier ist das grundlegende Beispiel, das zeigt, wie die Funktion memmove () in der C ++ - Sprache ausgeführt wird. Um mit dem Schreiben zu beginnen, brauchen wir zuerst eine C ++ - IDE, damit wir das Programm schreiben und ausführen können. Öffnen Sie dafür den C ++ - Compiler und beginnen Sie mit der Implementierung des Programms.

Nach dem Öffnen des Compilers beginnen wir immer mit den Header -Dateien, die für die C ++ - Programmiersprache erforderlich sind, damit die Programme ausgeführt werden können. Um das Programm zu konstruieren und die MemMove () -Methode zu verwenden, schließen wir zunächst die beiden grundlegenden Header -Dateien ein - „iOstream“ und „cstring“. C ++ bietet verschiedene Möglichkeiten für die Arbeit mit Arrays und Saiten. Diese Funktionen werden zur Verwendung zur Verfügung gestellt, wenn die Header -Datei in einem Programm mit der Headerdatei „#include“ enthalten ist. Die Header -Datei "#include" wird sowohl für die Eingabe als auch für die Ausgabe der Daten des Benutzer verwendet. Anschließend verwenden wir den Standard „Namespace STD“ in unserem Code, um die Standardsyntax der C ++ - Programmiersprache zu verwenden, damit wir die Objekte, Methoden und Parameter verhindern können.

#enthalten
#enthalten
Verwenden von Namespace 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;
Rückkehr 0;


Wir schreiben die Funktion main (), um die Ausführung einer tatsächlichen Codezeile zu starten. In Zeile 7 gibt es ein Array mit zwei Charakter-Typen mit einer Länge 50, das als "SRC [50] und" Dest [50] "deklariert wird. Wir verwenden die Anweisung "Cout", um die Nachricht zu drucken, "bevor Sie MemMove () auf das Ziel anwenden:". Dann bestehen wir den Parameter "dest", um den Wert des "Dest" -Arrays zu drucken. Anschließend wird die Memmove () -Funktion auf die als „SRC [50]“ und „Dest [50]“ deklarierte Zeichenvariable angewendet, um die bestimmte Anzahl von Bytes aus dem Ursprung (SRC) mit dem Ziel (dest Anzahl der "Zähler". Dies identifiziert die Anzahl der Bytes, die von "SRC" zu "Dest" kopiert werden. Wie Sie in der folgenden Abbildung sehen können, haben wir die Anzahl der „6“ Zählnummer erklärt.

Danach verwenden wir erneut die Anweisung "Cout", um die Nachricht "nach Anwendung von memmove () auf das Ziel:" anzuzeigen und das Variable "Dest" -Array von "Zeichen" -Typ zu übergeben. Um das Programm zu verhindern, müssen wir eine Rückgabeerklärung zum Schluss des Programms verwenden. Wir kehren dann 0 zur Hauptfunktion zurück und geben an, dass das Programm erfolgreich ausgeführt wird und sein Ziel erreicht hat.

Sie können in der folgenden Ausgabe der MemMove () -Methode sehen, dass sich der Zeiger beispielsweise überlappt, wenn sich der Zeiger zum Buchstaben 6 zum Buchstaben 6 bewegt, und die folgenden Zeichen überlappen sich. Dieser C ++ - Code -Snippet wurde ausgeführt und die Ergebnisse werden im folgenden Bild angezeigt:

Abschluss

In diesem Artikel haben wir die Funktion memmove () in C- und C ++ - Programmiersprachen erfahren. Wir haben darüber gesprochen, wie die Memmove () -Funktion durch das Beispiel von C und C ++ funktioniert, mit einer detaillierten Erklärung für jede Codezeile. Wir hoffen, dass Sie diesen Artikel hilfreich für die Entwicklung Ihres Wissens über die Memmove () -Funktion in C und C entwickeln++.