Nuuky
Grünschnabel
Dabei seit: 01.11.2006
Beiträge: 1
|
|
|
15.12.2006 22:14 |
|
|
|
dachdecker2
Moderator
Dabei seit: 14.09.2006
Beiträge: 20
|
|
RE: Feldelemente zählen (Zugriff mittels Zeiger, C++) |
|
Feldelemente zu zählen ist keine gute Idee - woran stellst du denn fest, ob ein Element das letzte Element ist?
Eine geeignetere Herangehensweise wird sein, die Länge des Feldes irgendwo, zum Beispiel in einer anderen Variable zu speichern. Wenn du wirklich zählen willst, musst du das Letzte Element (oder das, was nach dem letzten kommt) irgendwie markieren.
Ob ein element existiert ist eine Frage, die das Programm nicht beantworten kann. Der Speicher ist forlaufent - du kannst ein einem 10 elemente langen Array auch das 123. element ansprechen, nur dass da irgendetwas anderes gespeichert ist, vielleicht sogar code - du musst also verhindern, hinter dem Array einen schreibzugriff zu machen.
__________________ Gruß, dachdecker2
http://rettedeinefreiheit.de
|
|
15.12.2006 23:59 |
|
|
Tobias
Routinier
Dabei seit: 18.09.2006
Beiträge: 324
|
|
Es ist genau wie unser Herr Dachdecker sagte: Man kann in einer Schleife nicht überprüfen, wann das letzte Feld in *lptr kommt. Es sei denn die Struktur regelt es so, dass das letzte Feld z.B. einen bestimmten Wert hat. Sonst wirst du über das tatsächliche letzte Feld hinausschießen und uninitialisierte Werte bekommen oder aber eine Speicherzugriffsverletzung.
Wie ich deiner Struktur entnehme, musst du das aber auch garnicht tun sondern nur den Wert "Anz" auslesen. Dieser muss natürlich bei jedem Vergrößern oder Verkleinern der Liste neu gesetzt werden.
|
|
16.12.2006 12:16 |
|
|
|
|
|