______________________________________________________________________
// 1_23 Dynamische Speicherverwaltung
#include <stdio.h>
void main(void)
{
float* pZeiger = new float;
/* pZeiger keine neue Adresse zuweisen, solange nicht der Speicher wieder
freigegeben wurde, da er sonst nicht mehr freigegeben werden kann */
if(NULL == pZeiger)
printf("Kein Speicher mehr auf dem Heap frei\n");
scanf("%f", &*pZeiger);
printf("Die Zahl lautet %f\n", *pZeiger);
printf("Wie viele Zahlen wollen sie eingeben?\n");
int Menge;
scanf("%d", &Menge);
if(Menge > 0)
{
int* pArray = new int[Menge];
if(NULL == pArray)
printf("Kein Speicher mehr auf dem Heap frei\n");
printf("Geben sie die Zahlen nun ein\n");
for(int zaehler=0;zaehler<Menge;zaehler++)
scanf("%d", &pArray[zaehler]);
printf("Ihre Zahlen lauten:\n");
for(zaehler=0;zaehler<Menge;zaehler++)
printf("%d\n", pArray[zaehler]);
delete[] pArray;
pArray = 0;
}
delete pZeiger; // Speicherbereich wird freigegeben, aber Zeiger zeigt weiter darauf
pZeiger = 0; // jetzt zeigt er nicht mehr auf die inzwischen ungültige Adresse
}
______________________________________________________________________
|
|
Zurück
|