So erstellen Sie ein Array mit malloc in der C -Programmierung

So erstellen Sie ein Array mit malloc in der C -Programmierung

In der C -Programmierung wird das Array verwendet, um eine Reihe von Werten desselben Datentyps zu speichern, und nimmt einen Speicherplatz in Speicher ein, der entweder statisch oder dynamisch sein kann. Das Malloc ist eine Funktion, die in der C -Programmierung zur dynamischen Speicherzuweisung verwendet wird.

In diesem Artikel erfahren wir die Malloc -Funktion, um ein Array in der C -Programmierung zu erstellen.

Was ist ein Malloc () in C -Programmierung

Der dynamische Speicher wird dem Programm während seiner Ausführung gemäß dem von ihm benötigten Raum zugewiesen. Im statischen Speicher wird der feste Speicher dem Programm vor der Ausführung des Programms mit den folgenden Nachteilen zugewiesen:

  • Das mit der festen Größe deklarierte Array belegt die feste Größe des Systemspeichers
  • Wenn das Array Werte weniger als die festgelegte Größe hat, ist der freie Speicherplatz eine Verschwendung und kann nicht von einem anderen Programm verwendet werden
  • Wenn das Array Werte mehr hat als die festgelegte Größe, kann das Programm Fehler geben

Um diese Nachteile zu vermeiden, werden wir das dynamische Speicherzuweisungsschema verwenden, da dieses Schema den Speicher des vom Programms benötigten Blocks während seiner Ausführung zuweist. Der dynamische Speicher hat unterschiedliche Funktionen als Zeiger auf das Programm.

Die malloc () -Funktion steht für „Speicherzuweisung“ und wird für die dynamische Speicherzuweisung bei der Ausführung des Programms verwendet. Wenn die malloc () -Funktion aufgerufen wird, sendet sie eine Anforderung eines Speicherblocks an den Heap (es handelt sich um ein Speichersegment, in dem der Speicher zufällig zugewiesen wird). Wenn der Heap Speicher entspricht, der diesem Speicherblock entspricht, akzeptiert er die Anforderung und verweist diese Größe der MALKOC () -Funktion gegen seine Anfrage. Wenn er keinen Speicher hat, gibt er den Nullwert zurück. Wenn wir mit dem Speicherblock fertig sind, können wir ihn durch die Funktion Free () löschen, damit der Speicherblock frei werden und von den anderen Programmanweisungen verwendet werden kann. Für die dynamische Speicherzuweisung müssen wir das „STDLIB) einbeziehen.H ”In Header -Dateien und die allgemeine Syntax der Verwendung der Malloc -Funktion lautet:

1
$ pointer = (castType*) malloc (Größe);

Wir können jede Variable anstelle von "Zeiger" verwenden, dann können wir den "castType" durch den Datentyp ersetzen, dessen Werte im Array gespeichert werden. Verwenden Sie dann die MALOC () -Funktion und erwähnen Sie die Größe des Speichers, den wir benötigten.

So verwenden Sie die Malloc -Funktion in der C -Programmierung, um ein Array zu erstellen

Für ein besseres Verständnis der Erstellung eines Arrays mit der MALCOC () -Funktion werden wir ein Programm erstellen. Um die C -Programmierung unter Linux zu verwenden, müssen wir den GCC -Compiler mit dem Befehl installieren:

1
$ sudo APT Installieren Sie GCC

Erstellen Sie eine Textdatei mit dem Nano -Editor:

1
$ nano myfile.C

Geben Sie den folgenden Code ein:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# inklusive # inklusive
int main (void)

int Größe, ich, *my_array;
printf ("\ n Bitte geben Sie die Größe des Arrays ein:");
scanf („%d“, & Größe);
my_array = (int *) malloc (Größe * sizeof (int));
printf ("\ n Eingeben Sie die Werte von Array:");
für (i = 0; iscanf ("%d", & my_array [i]);
printf ("\ n Die Werte im Array sind:");
für (i = 0; iprintf ("%d", my_array [i]);
printf ("\ n");

Speichern Sie das Skript mit dem Namen „MyFile.C ”Verwenden Sie die Strg+S und beenden Sie den Editor, indem Sie Strg+x drücken. Kompilieren Sie nach dem Speichern den Code und überprüfen Sie, ob Fehler mit dem Befehl verwendet werden oder nicht:

1
$ gcc myfile.c -o myfile

Die "MyFile" wird eine ausführbare Datei sein. Führen Sie die "MyFile" mit dem Befehl aus:

1
$ ./meine Datei

Das Programm wurde erfolgreich ausgeführt. Die Erläuterung des obigen Code ist als:

  • Wir haben die Bibliotheken von C aufgenommen, die sind stdlib.H Für die dynamische Speicherzuweisung und stdio.H Für andere Funktionen wie printf Und Scanf
  • Wir haben den Hauptteil des Programms mit void initialisiert, da die Funktion keinen Wert zurückgeben wird
  • Wir haben zwei Variablengröße deklariert, ich und einen Zeiger “*my_array
  • Benutzte einfach die printf Befehl zum Drucken der “Bitte geben Sie die Größe des Arrays ein"Und speichern die Eingabe durch den Benutzer in Variablen"Größe
  • Anschließend forderte der MALOC -Funktion den Heap an, den Speicher gemäß dem in der “gespeicherten Wert zuzuweisenGrößeVariable und dem Speicher dem Array zugewiesen
  • Forderte den Benutzer auf, die Werte des Arrays einzugeben und sie in einem Array mit der For -Loop zu speichern
  • Schließlich gedruckt alle Werte von my_array Verwenden der für Schleife

Abschluss

Die malloc () -Funktion wird in der dynamischen Speicherzuweisung verwendet und kann auch verwendet werden, um Werte im Array zu speichern. In dieser Beschreibung haben wir besprochen, wie das Array mithilfe der MALCOC () -Funktion deklariert und verwendet wird. Der dynamische Speicherzuweisungsansatz wird empfohlen, wenn Sie die Größe eines Arrays während der Ausführung des Programms ändern möchten.