Array und initialisieren



  • Hallo

    ich habe folgende 2 Arrays (ich brauche jeweils 624 Stück davon):

    char vsgr[624];
    char ses[624][3];

    Initialisiert werden sollen die mit einem Leerzeichen:

    memset(vsgr, ' ', sizeof(vsgr));
    memset(ses, ' ', sizeof(ses));

    ist es bei "vsgr" nötig, die schliessende NULL zu setzen? Oder macht das memset automatisch? Im Debugger sehe ich keien schliessende NULL. Oder ist das nicht nötig? Muss dann vsgr in der Länge 625 definiert werden?

    Zu "ses":
    In "ses" möchte ich 2 Zeichen speichern + die schliessende NULL --> deswegen Länge 3. Oder braucht man hier auch keine schliessende NULL. Die schliessende NULL wäre ja dann zwischen den einzelnen Zeichen. Macht das was?

    Vielen Dank
    cu
    George



  • Wie meinst du das mit einem Leerzeichen? wenn da nur ein leerzeichen reinsoll ist es ziemlich sinnlos dafür memset zu verwenden. wenn du willst das es am Ende nullterminert ist musst du das extra machen...
    irgendwie scheint mir das mit deinem Arrays ein wenig eigenartig. sag mal was genau du überhaupt damit vor hast dann können wir dir vielleicht eine sinnvollere Antwort geben was du machen solltest.



  • Hallo

    das Array soll nicht mit einem Leerzeichen sondern mit Leerzeichen (Blank) initalisiert werden. Die Frage ist, ob man nullterminieren muss? Was passiert, wenn man das nciht macht?

    Ich soll ein Pogramm schreiben, das für Monate im Leben jeweils bestimmte Zustände annehemen kann.

    Monat 01 = Januar des Jahres, in dem Person 14 Jahre alt ist.
    Monat 624 = Dezember des Jahres, in dem Person 65 jahre alt ist.

    Jetzt möchte ich ein Array u.a. für die Variable "vsgr". Mit dem Index habe ich den entsprechenden Monat. Vorbelegen möchte ich mit Blank.

    Ich kapiere nur noch nicht richtig, wie man bei einem Array nullterminiert bzw. ob man das machen muss. V.a. bei einem 2Dimensionalen Array wie bei "ses" Bei einem Int-Array ist das ja kein Problem.

    Vielen Dank nochmals
    cu
    george



  • das Array soll nicht mit einem Leerzeichen sondern mit Leerzeichen (Blank) initalisiert werden.

    dann reicht es nicht sizeof(char) was bei char immer 1 ist zu initialisieren sondern du musst arraygrösse mal sizeof(arraytyp) mit memset auf den gewünschten wert bringen

    Die Frage ist, ob man nullterminieren muss? Was passiert, wenn man das nciht macht?

    nichts weiter... du kannst es dann nur nicht so ohne weiteres als "string" verwenden... wenn du das willst einfach am ende nen nullbyte ranhängen wo ist das problem?



  • Vielen Dank erst mal - aber langsam verzweifle ich bald --> siehe anderen Beitrag


Anmelden zum Antworten