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;


Anmelden zum Antworten