Ich hab ein Problem mit meinem C-Programm..
Und zwar rufe ich im main die Funktion generieren auf, und übergebe die Adresse eines Zeigers und einer normalen Variablen. Empfangen wird das ganze mit einem Zeiger und einem Zeiger auf Zeiger. Das Datenfeld wird dann über die Funktion malloc erzeugt. Mit dem schrittweisen debuggen funktioniert das sogar meines Wissens nach. Aber beim Wertezuweisen mit der Funktion rand() tritt beim zweiten Durchlauf der for-Schleife ein Fehler auf..
Kann mir jemand sagen warum und was ich ändern sollte damit es funktioniert?
Code: Alles auswählen
...
int anzahl;
float *z;
generieren(&anzahl,&z);
...
Code: Alles auswählen
void generieren(int *n, float **z)
{
printf("Wie viele Zufallszahlen sollen erzeugt werden?");
scanf("%i",n);
*z=(float *) malloc (sizeof(float)*(*n));
if (*z)
for (int i=0; i<(*n); i++)
{
**(z+i)=rand();
}
else
printf("Der Speicherbereich war nicht verfügbar!");
}