Malloc -Funktion in c

Malloc -Funktion in c

„In der C -Sprache ist die Gedächtnisverteilung ein sehr bekannt.e., Dynamischer Speicher, statischer Speicher usw. Die malloc () -Funktion von c ist eine dieser Funktionen, die nicht nur einem bestimmten Veränderbaren Speicher zuweisen, sondern auch einen Adresszeiger zurückgibt, in dem dieser Speicher gespeichert wurde. Dieser Artikel würde Ihnen bei der Verwendung von Malloc in C bei der Verwendung von Ubuntu 20 helfen.04 System. Machen Sie Ihr System auf dem neuesten. Daher haben wir es bisher aktualisiert und es uns gebeten, das Passwort für den derzeit funktionierenden Benutzer hinzuzufügen. Wir haben es ein Passwort zur Verfügung gestellt, und der Vorgang war in wenigen Sekunden abgeschlossen.”

Wir werden diesen Artikel in C -Sprache implementieren. Daher verlangen wir, dass sein Compiler an unserem Ende installiert wird. Linux verfügt über ein „GCC“ C -Dienstprogramm als Compiler, der mit „APT“ installiert werden kann, wie wir es im gezeigten Bild getan haben. Jetzt können Sie Ihren Codefehler innerhalb von Sekunden frei machen.

Bevor wir mit unserem C -Beispiel beginnen, muss es eine Datei geben, in der wir die C -Codes für die Zusammenstellung und Ausführung hinzufügen. Daher erstellen wir eine Datei "Datei" Datei.C". Die Datei muss eine haben “.C ”Erweiterung an seinen Enden, um sie als C -Datei zu identifizieren.

Beispiel 01

Innerhalb dieser Code -Abbildung verwenden wir die Funktion malloc (), um Speicher einer Variablen unter Verwendung eines konstanten Werts zuzuweisen und anzuzeigen, wenn der Speicher erfolgreich zugewiesen wurde oder nicht. Wir müssen diesen C -Code mit den Haupt -C -Bibliotheksheadern starten, die in einem Code haben müssen, und ohne diese wäre unser Code nutzlos, um auszuführen. Der Code enthält eine Main () -Funktion, die alles ausführen wird, was wir für Speicherzuweisung und Fehler angezeigt werden, wenn der Speicher nicht erfolgreich zugewiesen wird. Die Funktion beginnt mit der Initialisierung einer konstanten Ganzzahlvariablen „A“ als leer.

Wir haben eine doppelte Zeigervariable "V" mit langem Typ "V" angegeben, um Speicher mit der MALDOC () -Funktion zuzuweisen. Diese malloc () -Funktion verwendet die konstante Ganzzahlvariable „A“ für die Speicherzuweisung auf den Zeiger „M.”Es gibt eine Anweisung" If-ELSE ", um zu überprüfen. Es ist also der "If" -Teil, der prüft, ob der Wert von "M" null ist oder nicht. Wenn es sich.e., "Kein Speicher" mit einem Zeilenpause am Ende mit dem "\ n".”

Auch die Funktion „Exit (-1)“ beendet enden. Während der else -Teil 2 Printf () -Funktionsanweisungen verwenden würde, i.e., Die erste Anweisung, um den Wert einer konstanten Ganzzahlvariablen „A“ und die zweite Anweisung zur Anzeige der Erfolgsnachricht mit dem angegebenen Speicher anzuzeigen. Sparen wir unseren Code, bevor wir den Quellcode für die Ausführung erstellen.

#enthalten
#enthalten
int main ()
const int a = "";
langes Doppel *m = (langes Doppel *) Malloc (sizeof (langes Doppel) *a);
if (m == null)
printf ("Fehler: kein Speicher \ r \ n");
exit (-1);
anders
printf ("value = %d \ n", a);
printf ("großartig, Speicher: %lf \ n", *m;

Bei der Zusammenstellung zeigte es einige Warnungen, aber wir können sie für einen Moment ignorieren. Bei Ausführung des kompilierten Code.

Wir aktualisieren denselben Quellcode, indem wir einen Ganzzahlwert „500“ für eine Variable „A“ hinzufügen, damit wir einer Zeigervariablen „M einen genauen Speicher zuweisen können."Speichern Sie diesen aktualisierten Code vorerst.

#enthalten
#enthalten
int main ()
const int a = 500;
langes Doppel *m = (langes Doppel *) Malloc (sizeof (langes Doppel) *a);
if (m == null)
printf ("Fehler: kein Speicher \ r \ n");
exit (-1);
anders
printf ("value = %d \ n", a);
printf ("großartig, Speicher: %lf \ n", *m;

Nach dem Kompilieren dieses aktualisierten Code haben wir keine Fehler, nicht einmal eine Warnung, die zuvor gezeigt wurde. Nach Ausführung dieses kompilierten und aktualisierten Code.e., Es zeigt keinen genauen Speicherwert an.

Beispiel 02

Schauen wir uns ein anderes Beispiel an, um einer bestimmten Variablen Speicher zuzuweisen. Beginnen Sie dieses Beispiel mit der Verwendung von „stdio.H ”und„ stdlib.H ”Header vor irgendetwas anderem. Die Main () -Methode erhielt ihre Ausführung von der Deklaration eines Zeiger -Zeiger -Variablen vom Zeigertyp "A". In der nächsten Zeile wird die Funktion malloc () verwendet, um einen Speicher für einen Zeichenzeiger von Größe 10 zu erstellen. Dies ist eine anfängliche Speicherzuweisung für Zeiger “a.”

Danach ist die Funktion von strcpy () hier, um eine Zeichenfolge von Wörtern in einen variablen Zeiger zu kopieren “a.Die Verwendung von printf () ist ein Muss, um unseren String -Wert anzuzeigen, der gerade in variabler Zeiger „A“ gespeichert ist, zusammen mit seiner Speicheradresse auf der Shell. Das spezielle Zeichen „%S“ bezeichnet den Zeichenfolgenwert, während das "%u" die zu angezeigte Adresse bezeichnet. Danach werden wir einen neuen Speicher an die gleiche Zeigervariable „A“ der Größe 20 anhand der Realloc () -Funktion der C -Sprache neu zusammenfahnen. Es wird die Funktion der StrCat () verwendet.”

Danach verwendeten wir erneut die Anweisung printf (), um den neu verketteten String -Wert zusammen mit der Adresse eines variablen Zeigers anzuzeigen."Danach haben wir die" freie "Funktion auf dem variablen Zeiger" A "ausprobiert, um den zugewiesenen Speicher darauf zu befreien. Sparen wir zuerst diesen Code und probieren Sie dann den GCC -Compiler auf der Shell, um ihn schnell zu kompilieren.

#enthalten
#enthalten
int main ()
char *a;
A = (char *) malloc (10);
Strcpy (a, "Willkommen in C");
printf ("value = %s, Adresse: %u \ n", a, a);
Strcat (a, "Sprache");
printf ("value = %s, Adresse: %u \ n", a, a);
befreie ein)

Jetzt werden wir unseren Code mit „GCC“ kompilieren, wie darunter vorgestellt. Obwohl die Verwendung der Funktion „strcpy“ eine Warnung zeigt, hindert sie uns nicht daran, den Code auszuführen.

Nach dem Kompilieren der Datei.c C -Datei haben wir sie in der Konsolenanwendung mit der “ausgeführt./A.Out ”Abfrage von Linux, um die Codedateien auszuführen. Sie sehen eine Ausgabe von zwei Zeilen, die zwei verschiedene Werte für einen variablen Zeiger „A“ zeigen, aber dieselbe Adresse, ich.e., alte und aktualisierte Werte. Dies bedeutet, dass der zugewiesene Speicher aktualisiert wurde, aber die Adresse bleibt für eine Variable „a.”

Abschluss

Das ist es! Jetzt können Sie Ihre Codes erstellen, um einer bestimmten Variablen in Ihrem System einen Speicher zuzuweisen.