Character nicht sichtbar?!

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Character nicht sichtbar?!

      Hallo :P
      Ich habe gerade etwas interessantes Entdeckt.
      Wenn ich einen C-String ( char Array ) Deklariere und Definiere wird dieser später im Hex Editor nicht angezeigt.
      Danach habe ich einen String Deklariert und Definiert und dieser war im Hex Editor zu sehen. So könnte man sich doch effektiv gegen Manipulation durchsetzen. Wer mir nicht glaubt, soll das mal kompilieren und nach dem C-String suchen.

      Quellcode

      1. #include <string>
      2. int main( void )
      3. {
      4. const char Test1[10] = "Character";
      5. std::string Test2 = "String";
      6. return 0;
      7. }
      Wisst ihr vielleicht warum das so ist?!
      Auch wenn ein konstanter Character keinen Speicherplatz braucht, so muss er doch irgendwo geschrieben werden...
      Ich freue mich auf eure Antworten :D
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • [FONT="Comic Sans MS"][COLOR="DeepSkyBlue"][SIZE="2"]Hmm is jetzt ne Vermutung meinerseits, ists aber nich so dass bestimmte Dinge vll erst zur Laufzeit initialisiert werden könne oder so?
      Vll kann ein String halt direkt im Hex code sein oder sonstwas.
      Jedenfalls, die Frage is interessant, mal sehn was kommt.

      Bzw, auch nur ne Frage, werden in C++ strings nich intern auch als Array gehandelt?[/SIZE][/COLOR][/FONT]
    • Also so weit ich weiß werden alle Variablen zur Laufzeit initialisiert?!
      Ich denke das die C-Strings nur im "Rohformat", also Hex, vorliegen.
      Da sind wir ja schonmal einer Meinung ;D

      Ja Strings sind auch Arrays von Charactern. Da String "nur" ein erweiterter Datentyp ist; Eine Klasse.
    • Nur kurz zu Char, es gibt " char[] " & " char* "
      der unterschied bei beiden liegt das beim
      1. char[] ,wird ein fester Speicher bei der Dekleration reserviert und beim
      2. char* , wird direkt gar kein Speicher reserviert nur halt für den Zeiger.
      Ich kann euch noch empfehlen einen Char-Arrax auf 256 zu max zusetzen, da dort meistens auch fehler auftretten aber das mal nur nebensache.
    • 1. Es gibt auch den normalen Character mit einem Byte :D

      2. Es ist ein C-String. Kein Char Array.
      Wenn ich einen C-String als konstant deklariere und logischerweise auch definiere, wird für ihn auch kein Speicherplatz reserviert.

      3. WAS?! Ein Character POINTER verbraucht NUR Platz für eine ADRESSE?!
      Oh nein, wie konnte ich nur so eine falsche Vorstellung von Pointer haben :/
      Leider wird für den C-String oder den Character der folgen wird, was sonst echt Banane wäre, auch Speicher benötigt.