Heim > Backend-Entwicklung > C++ > Erläutern Sie die dynamische Speicherzuweisung in der Sprache C anhand eines Beispiels

Erläutern Sie die dynamische Speicherzuweisung in der Sprache C anhand eines Beispiels

王林
Freigeben: 2023-09-09 08:53:06
nach vorne
686 Leute haben es durchsucht

Erläutern Sie die dynamische Speicherzuweisung in der Sprache C anhand eines Beispiels

Problem

Ermitteln Sie mithilfe der C-Programmierung die Summe von n vom Benutzer eingegebenen Zahlen mithilfe von dynamisch zugewiesenem Speicher.

Lösung

Dynamische Speicherzuweisung ermöglicht es C-Programmierern, Speicher zur Laufzeit zuzuweisen.

Zu den verschiedenen Funktionen, die wir verwenden, um zur Laufzeit dynamisch Speicher zuzuweisen, gehören:

  • malloc() – weist zur Laufzeit einen Speicherblock zu.
  • calloc() – Weist zur Laufzeit zusammenhängende Speicherblöcke zu.
  • realloc() – wird verwendet, um den zugewiesenen Speicher zu reduzieren (oder zu erweitern).
  • free() – Gibt zuvor zugewiesenen Speicherplatz frei.

Das folgende C-Programm wird verwendet, um Elemente anzuzeigen und die Summe von n Zahlen zu berechnen.

Mithilfe dynamischer Speicherzuweisungsfunktionen versuchen wir, die Speicherverschwendung zu reduzieren.

Beispiel

Demonstration

#include<stdio.h>
#include<stdlib.h>
void main(){
   //Declaring variables and pointers,sum//
   int numofe,i,sum=0;
   int *p;
   //Reading number of elements from user//
   printf("Enter the number of elements : ");
   scanf("%d",&numofe);
   //Calling malloc() function//
   p=(int *)malloc(numofe*sizeof(int));
   /*Printing O/p -
   We have to use if statement because we have to check if memory
   has been successfully allocated/reserved or not*/
   if (p==NULL){
      printf("Memory not available");
      exit(0);
   }
   //Printing elements//
   printf("Enter the elements : </p><p>");
   for(i=0;i<numofe;i++){
      scanf("%d",p+i);
      sum=sum+*(p+i);
   }
   printf("</p><p>The sum of elements is %d",sum);
   free(p);//Erase first 2 memory locations//
   printf("</p><p>Displaying the cleared out memory location : </p><p>");
   for(i=0;i<numofe;i++){
      printf("%d</p><p>",p[i]);//Garbage values will be displayed//
   }
}
Nach dem Login kopieren

Ausgabe

Enter the number of elements : 5
Enter the elements :
23
34
12
34
56
The sum of elements is 159
Displaying the cleared out memory location :
12522624
0
12517712
0
56
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonErläutern Sie die dynamische Speicherzuweisung in der Sprache C anhand eines Beispiels. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage