So allerhand über C++



  • Hi,

    1. was genau ist 'size_t'? Ist das ein int, float, char??

    2. Ist char* str oder std:string str besser, welches soll ich nehmen, wo ist der Unterschied?



  • FragenderER schrieb:

    Hi,

    1. was genau ist 'size_t'? Ist das ein int, float, char??

    2. Ist char* str oder std:string str besser, welches soll ich nehmen, wo ist der Unterschied?

    zu 1.
    size_t = unsigned integer Result of sizeof operator
    Also die Größe des Objektes in Byte

    zu 2.
    Das hängt davon ab, was Du machen willst.
    Für einfache spielerein, ist std:string sicherlich besser geeignet, da einfacher zu handhaben.
    Einige Funktionen wollen aber einen char* (Pointer auf char) haben oder geben ihn zurück.



  • was genau ist 'size_t'?

    Kenn ned die genaue definition, aber du sollst den Typ nehmen, fuer groessenangeben, die das system betreffen ...
    Also so alles was Stringlaengen, groessen von Arrays (map-size usw) SpeicherGroessen (in Bytes) betrifft. die definition ist compilersache. Ist aber definitiv ein integer wert, meist vorzeichenlos. Bei VC++ ist es:

    typedef unsigned int size_t;
    

    Bei einem BS, wo nen 32bit unsigned integer nicht mehr langt, weil zum beispiel mehr speicher zur verfuegung steht als 32bit unsigned int beschreiben koennt, wird dann size_t auch entsprechend groesser definiert sein ....

    Ist char* str oder std:string str besser

    Kann man so ned fragen ! 😃

    schreibst in C , wirst um char * ned drumrumkommen 🙂

    std::string ist ne klasse, die dir die speicherverwaltung, die fuer nen simplen string brauchst, abnimmt. Und den umgang damit sicherer macht.
    fuer einsteiger eigentlich zu empfehlen. Schau dir aber trotzdem den umgang mit C-Strings (char * ) an, weil selbst in C++ frueher oder spaeter mit C-Schnittstellen in beruehrung kommst. 🙂 Ausserdem, nicht alles hat nur vorteile. Auch std::string hat nachteile. Um die zu umgehen, muss man auch mal mit C-Strings arbeiten oder eigene stringklassen schreiben.

    Also meine empfehlung: Lerne Beides (char * und die verwendung von std::string) verwende am anfang aber lieber std::string !

    Ciao ...



  • Die Bibel sagt, du sollst std::string gegenüber char-Arrays bevorzugen. Das heißt, benutze immer die string-Klasse, ausser es gibt in einem speziellen Fall gute Gründe dagegen. Dem Kommentar von daishi, die string-Klasse sei nur für "einfache Spielereien" geeignet, kann ich mich nicht anschließen.



  • @Bashar
    Ich hatte nur geasgt, das für einfach spielereien std:string besser sei und nicht, daß std:string nur für einfache spielereien sein.
    🙄 😃



  • Dann hast du dich unklar ausgedrückt. Wenn du sagst "X ist sicherlich für einfache Sachen geeignet" schwingt da automatisch mit, dass man, sobald es über einfache Sachen hinausgeht, besser The-Real-Thing(TM) verwendet. Das ist hier aber nicht der Fall, gerade bei komplizierten Sachen bekommt man mit string schneller korrekte, sichere und robuste Ergebnisse. Die meisten Sicherheitslücken in C-Programmen stammen schließlich aus Fehlern in der Stringverarbeitung.


Anmelden zum Antworten