Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Feldelemente zählen (Zugriff mittels Zeiger, C++) » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 3 Beiträge
Tobias

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.
dachdecker2 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.
Nuuky Feldelemente zählen (Zugriff mittels Zeiger, C++)

N'Abend allerseits!

Ich habe folgende Aufgabe und bräuchte ein wenig Schützenhilfe. Einer Funktion soll ein Zeiger auf einen selbst struktutierten Datentypen übergeben werden, die dann die Anzahl der Feldelemente bestimmt und das Ergebnis zurückliefert.

Mein Problem ist die Überprüfung der Feldelemente. Mein bisheriges Programm gibt einen Schmarn aus.

Der strukturierte Datentyp sieht so aus:
struct IFeld() {
unsigned int Anz;
int* lptr;
};

In der main()-Funktion wird für lptr ein zufallegroßes Feld bereitgestellt.

Ich habs mit eine while-Schleife versucht, deren Bedingung die Existenz eines Elementes ist, also sowas wie while(Feld->lptr[i]) {...}


Kann mir jemand weiterhelfen?

Gruß
Nuuky