Dynamische Struktur --> Zugriff auf dynamische Elemente
-
Ich habe ein Problem mit folgendem Code:
#include<conio.h>
#include<iostream.h>
#include<malloc.h>
#include<stdlib.h>typedef struct{
float *Dyn_float;
int anzahl_der_Dyn_float_eingaben;
}Dyn_struct;main()
{
int i,j;
int n;Dyn_struct zgrstruct;
cout<<"Anzahl der Strukturen eingeben: ";
cin>>n;
zgrstruct=(Dyn_struct)malloc(nsizeof(Dyn_struct));
for(i=0;i<n;i++)
{
cout<<"Anzahl der Floatzahlen eingeben: ";
cin>>((zgrstruct+i)).anzahl_der_Dyn_float_eingaben;((zgrstruct+i)).Dyn_float=(float )malloc(((zgrstruct+i)).anzahl_der_Dyn_float_eingabensizeof(float));
for(j=0;j<((zgrstruct+i)).anzahl_der_Dyn_float_eingaben;j++)
{
((zgrstruct+i)).Dyn_float=random(1000)1.0; //mit Zahlen füllen
} //hier Fehler: E2060 Unzulässige Verwendung einer Fließkommazahl.
}
//float Zeiger freigeben
for(i=0; i<n; ++i)
free(((zgrstruct+i)).Dyn_float);
//Strukturarray freigeben
free(zgrstruct);
getch();
}Es funktioniert auch nur wenn ich "*(zgrstruct+i)" zusätzlich noch mal in Klammern setze. Ich kriege aber immer den Fehler einer unzulässigen Verwendung einer Fließkommazahl. Wie soll ich jetzt auf die dynamischen floatzahlen zugreifen?
-
(*(zgrstruct+i)).Dyn_float[j]=random(1000)*1.0; //mit Zahlen füllen
-
Funktioniert das auch irgendwie ohne die eckigen Klammern, also mit (zgrstruct+i)).(variable+j) oder geht das überhaupt nicht?
-
Klar, wenn Du willst, dass Dein Code völlig unlesbar wird!
(((zgrstruct+i)).Dyn_float+j)=random(1000)*1.0;