Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Zeigerarthmetik Problem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.12.2006, 23:19 Uhr
Deagle



moin,

ich habe mir als Beispiel so ein Code geschrieben:

C++:
int germ[8] = {1, 2, 3, 4, 5, 6, 7, 8};
int *evtl = &germ[7] + 1;
cout<<*evtl;



.. dabei kommt das aus was auch immer für einen Grund "62" heraus
Könnte mir das bitte eventuell jemand erklären?

ich würde es so verstehen ..

germ[7] + 1 wäre dann germ[8] also "8".
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.12.2006, 00:07 Uhr
~TM
Gast


Es kommt nicht immer 62 heraus. Ich bekomme 420456 oder so raus. Quasi irgendwo einen Speicherbereich.

Mit:
int evtl = germ[7] + 1;
bekomm man 9 heraus (8 + 1)

Mit:
int evtl = germ[7+1];
bekommst du deine 8 heraus.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.12.2006, 00:16 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Mit:
int evtl = germ[7+1];
bekommst du deine 8 heraus


Nein das ist schlicht falsch.

in c/c++ laufen arrays von 0 bis n-1. Wenn ich also ein array der größe 8 habe kann ich die elemente des arrays über die indices 0-8 erreichen. Was an der Stelle des Index 8 steht ist reiner Zufall. Der Speicher gehört dir auch nicht also solltst du da auch nicht drauf zugreifen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.12.2006, 10:49 Uhr
ao

(Operator)



Zitat von Windalf:
in c/c++ laufen arrays von 0 bis n-1. Wenn ich also ein array der größe 8 habe kann ich die elemente des arrays über die indices 0-8 erreichen.

Fipptehler, indices 0 bis 7

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
27.12.2006, 13:00 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@ao
Verdammt...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
28.12.2006, 12:00 Uhr
Deagle



hi,

danke für die Antworten.
Aber wie kommt man eigentlich auf das Ergebnis,obwohl beim Beispiel etwas anderes herauskommt?Das wollte ich nähmlich wissen, wie man draufkommt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
28.12.2006, 15:11 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Weil du in deinem Beispiel wie schon gesagt auf einen undefinierten Speicherbereich zugreifst der nicht mehr zu deinem Array gehört.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: