/* dynamicMemoryAllocation.c * * Liest eine vom Benutzer gewaehlte Anzahl von Fliesskommazahlen * in einen dynamisch (zur Laufzeit) reservierten Speicherbereich ein. */ # include # include double* speicherAnforderung(double *pMem, int n); void speicherFreigabe(double *pMem); void eingabe(double *pMem, int n); void ausgabe(double *pMem, int n); double* speicherAnforderung(double *pMem, int n) { pMem = (double *) malloc(n * sizeof(double)); if (pMem == NULL) { printf("Speicheranforderung fehlgeschlagen. Programm wird beendet.\n"); exit(-1); } return pMem; } void speicherFreigabe(double *pMem) { free(pMem); } void eingabe(double *pMem, int n) { int i; printf ("Bitte %d Fliesskommazahlen eingeben: ", n); for (i = 0; i < n; i++) scanf("%lf", &pMem[i]); } void ausgabe(double *pMem, int n) { int i; printf ("Sie haben folgende Zahlen eingegeben: "); for (i = 0; i < n; i++) printf("%lf ", pMem[i]); } int main () { int anzahl; double *puffer; printf ("Bitte die Anzahl der Fliesskommazahlen eingeben: "); scanf("%d", &anzahl); puffer = speicherAnforderung(puffer, anzahl); eingabe(puffer, anzahl); ausgabe(puffer, anzahl); speicherFreigabe(puffer); return 0; }