Struct und Pointer Problem



  • Hallo ich habe ein Struct in dem verschieden Messwerte abgespeichert werden sollen. Diese Messwerte übergebe ich über Zeiger in verschieden Funktion ein. Nun muss ich das ganze in ein array umwandel da mehrere Messgeräte angschlossen sein können.Kann mir gerade mal jemand auf die Sprünge helfen?

    So mache ich es gerade:

    struct MESS_DATEN GMessDaten, *Daten = &GMessDaten;
    

    Und so übergebe ich an eine Funktion

    ResetMessDaten(pDaten);
    

    Nun möchte ich GMessDaten als eine array haben also so GMessDaten[Max_Geräte]
    nur wie mach ich das dann mit dem Pointer und der Übergabe.
    Bin was das ganze betrifft noch nicht so fit.
    Besten Dank schon mal.



  • *Daten = &GMessDaten[0]
    
    ResetMessDaten(pDaten[0]);
    

    😉



  • Sorry hatte das noch dazuschreiben müssen in meine Funktion sieht so aus:

    void ResetMessDaten(struct MESS_DATA *Daten)
    {
     Daten->Startspannung =0;
     Daten->Endspannung =0;
     Mittelspannung =0;
    }
    

    und in der Funktion möchte ich dann mit einer for Schleife die Messwerte der einzelnen Geräte zurücksetzen.



  • Das ändert doch nichts?^^

    struct MESS_DATEN GMessDaten[Max_Geräte];
    
    for (int i = 0; i < Max_Geräte; i++)
    {
      ResetMessDaten(&GMessDaten[i]);
    }
    


  • #define MAX_GERAETE 100
    struct MESS_DATEN GMessDaten[MAX_GERAETE];
    ...
    ResetMessDaten(&GMessDaten[0])
    ResetMessDaten(&GMessDaten[1])
    ...
    ResetMessDaten(&GMessDaten[99])
    

Anmelden zum Antworten