Struktur initialiseren mit 0 gefüllt



  • Ich arbeite mit Visual Studio. Das crashed auch nicht, also das Compilieren funktioniert korrekt, aber wenn ich das Tool starte stürzt es ab.



  • Wo wird der Kram denn definiert? Innerhalb eines Namenraumes oder innerhalb einer Funktion? Im ersten Fall musst Du gar nichts dafür tun. Das Ding wird "statisch" mit Nullen initialisiert. Im zweiten Fall bedarf es einer Initialisierungsliste ( ={0}; oder sogar ={}; ).

    Gruß,
    SP



  • Sebastian Pizer schrieb:

    ={0}; oder sogar ={};

    Ist beides dasselbe.



  • hey man, du brauchst ne variable:
    RouteStruct var = {0};
    !



  • @variabl0r: wie darf ich das verstehen?

    Ich möchte dann erreichen, dass alle Werte Null sind, aber mit einer Variablen?
    Die Struktur wird für die Kommunikation verwendet und wenn das andere Ende Daten sendet tut mein Programm auch, aber wenn keine kommen stürzt es ab. Und dies möchte ich abfangen durch Null setzen aller Werte.



  • Und warum ignorierst du Fragen?



  • hage2001 schrieb:

    @variabl0r: wie darf ich das verstehen?

    Ich möchte dann erreichen, dass alle Werte Null sind, aber mit einer Variablen?
    Die Struktur wird für die Kommunikation verwendet und wenn das andere Ende Daten sendet tut mein Programm auch, aber wenn keine kommen stürzt es ab. Und dies möchte ich abfangen durch Null setzen aller Werte.

    Du kannst alle Elemente einer Struktur, die durch eine Strukturvariable adressiert werden können, direkt beim Initialisieren auf 0 setzen:
    RouteStruct var = {0};
    Damit wird var.iNoWpts=0, var.lNoWptCou=0, ..., usw.
    Später, im Programmverlauf geht das nicht mehr, da musst du entweder alle Elemente einzelnd 0 setzen, oder memset benutzen: memset(&var,0,sizeof(struct test));

    Gruß,
    v.



  • {0} ist aus C- Kompatibilitätsgründen noch gültig.

    In C++ kann man mit {} den POD mit Nullen initialisieren.
    Und mit {0,3,4} die 3 Member mit den Werten 0,3,4 befüllen.

    Simon



  • Wo wird der Kram denn definiert? Innerhalb eines Namenraumes oder innerhalb einer Funktion?

    Die Struktur ist in einer Header-Datei. Aufgerufen wird das ganze in der Main-Datei in einer Funktion. Dort wird das ganze dann mit einer Schleife in ein Array übergeben und dieses Array dient der weiteren Arbeit.



  • Wo wird der Kram denn definiert? Innerhalb eines Namenraumes oder innerhalb einer Funktion?

    Die Struktur ist in einer Header-Datei. Aufgerufen wird das ganze in der Main-Datei in einer Funktion. Dort wird das ganze dann mit einer Schleife in ein Array übergeben und dieses Array dient der weiteren Arbeit.


Anmelden zum Antworten