Ich mache ein dynamisches Array mit int*
Datentyp mit malloc()
. Aber das Problem ist: Wie kann man das Ende des Arrays erkennen? es gibt keine Entsprechung zu
für %code% -Datentyp, also, wie geht das? Pass-Größe als Out-Parameter der Funktion? Ich hoffe, dir ist das klar. Jede Hilfe wird sehr geschätzt. int*
Es gibt kein "offizielles" Äquivalent zu
für Ganzzahlen, aber Sie können sicherlich Ihren eigenen Wert verwenden. Wenn Ihre Ganzzahlen beispielsweise Entfernungen darstellen, können Sie -1 (keine gültige Entfernung) als Sentinel-Wert verwenden, um das Ende des Arrays anzugeben. int
Wenn Ihr Integer-Array vernünftigerweise any %code% -Wert enthalten kann, können Sie die Größe des zugewiesenen Arrays mit einem zusätzlichen Parameter an Ihre Funktion übergeben.
Sie können NULL
als Endwert verwenden. Sie können einer Struktur eine Ganzzahl mit dem Array hinzufügen, das die Anzahl der Einträge verfolgt. Oder Sie können die Größe separat verfolgen. Sie können es tun, wie Sie wollen.
Wenn Sie Speicher mit malloc zuweisen, wird die Anzahl der zugewiesenen Bytes unmittelbar vor dem Start des 'mallocated' Speichers gespeichert. Wenn Sie die Größe kennen, kennen Sie das Ende auch! Dies wird in der Bibel von C, dem K & R-Buch, erklärt. Ich wünschte, ich könnte Ihnen auch die Seitennummer geben, aber Sie werden es wissen, wenn Sie es sehen.