Suchergebnisse

Suchergebnisse 1-4 von insgesamt 4.

  • Benutzer-Avatarbild

    Zitat von Radinator: „Is des so weil der Compiler alle nicht verwendeten Speicherzellen mit dem Wert belegt?“ Nö. Das was du da machst endet in undefined Behaviour. Nach dem Inkrementieren zeigt i auf irgendwas (nur nicht x). Entweder zeigt das auf etwas anderes in deinem Program und du rufst dessen Wert ab, oder auf Speicher einer anderen Anwendung und es knallt. Beides kann passieren, soetwas tut man nicht. Oder wolltest du den Wert inkrementieren (*i)++ ?

  • Benutzer-Avatarbild

    Zitat von Radinator: „ne ich wollte ned den wert, sondern die addresse inkrementieren“ Dann lass dass. Man greift nicht auf Speicher zu dessen Existens man nicht kennt.

  • Benutzer-Avatarbild

    Ganz einfach du greifst auf dir unbekannten Speicher zu, worin dein Program wohl irgendeine Variable abgelegt hat (guck dir mal die Disassembly an). Speicheradressen sind immer 1 Byte. Ob du jetzt einen int* hast und um 4 Bytes in/dekrementierst oder ein char* um 1 Byte ist dir überlassen.

  • Benutzer-Avatarbild

    Zitat von Radinator: „In C/C++ hab ich das noch nicht gefunden“ In C hast du nur den char* , da es keine Klassen gibt. Die Stringklassen aus anderen Sprachen sind nur Wrapper. In C++ gibt's natürlich Klassen und so auch eine für Strings. Nämlich der basic_string<typename charT, typename traits = char_traits<charT>, typename alloc = allocater<charT>> . Für Ansi basic_string<char> = string und Unicode basic_string<wchar_t> = wstring. Je nach dem welches Encoding man möchte kann man natürlich auch …