Hey, kann mir jemand einen Tipp geben warum mir der Pointer auf den allokierten Speicher nicht zurückgegeben wird? Habe gerade erst mit Pointern angefangen und blicke jetzt nicht mehr durch.
Das C-Programm liest den Grad einer Funktion ein und danach die Koeffizienten. Eigentlich müsste ich den Grad auch aus der Funktion zurückgeben, aber ich habs vorübergehend mit der Notlösung als globale Variable gelöst.
Das C-Programm liest den Grad einer Funktion ein und danach die Koeffizienten. Eigentlich müsste ich den Grad auch aus der Funktion zurückgeben, aber ich habs vorübergehend mit der Notlösung als globale Variable gelöst.
Code:
#include <stdio.h>
#include <stdlib.h>
void einlesen();
void ausgabe();
int n;
///////////////////////////////////////////////////// Hauptfunktion /////////////////////////////////////////////////
int main(){
double *ptr_feld;
einlesen(*ptr_feld);
printf("Grad: %i\n", n);
ausgabe(ptr_feld,n);
return 0;
}
//////////////////////////////////////////////// ausgelagerte Funktionen ////////////////////////////////////////////
void einlesen(double *ptr) {
int i=0;
double a=0;
printf("Höchsten Grad eingeben: \n");
scanf("%i", &n);
if (n < 1){printf("Grad zu klein!\n");} //return 1 rausgenommen
double* feld=(double*)malloc((n+1)*sizeof(double));
if (!feld){printf("Zu wenig Speicher!\n");}// return 1 rausgenommen Liefert malloc NULL?
printf("Koeffizienten eingeben, beginnend beim höchsten: \n");
for (i=0; i <= n; i++) { scanf("%lf", &a); feld[i]=a;}
ptr=&feld[0];
}
void ausgabe(double x[],int n) {
int i=0;
while(i<n){printf("%lf ",x[i]);i++;}
}