Neue Antwort schreiben 
 
Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[C++] Verfallen Arrays auch zu Pointer?
gandro Offline
Quälgeist

Beiträge: 8.951
Registriert seit: Jul 2008
Beitrag #1
[C++] Verfallen Arrays auch zu Pointer?
Kurze Frage, weil ich irgendwie grad keinen am Hörer habe, der C++ kann: Bei C verfallen Arrays bei der Parameterübergabe bekanntlich zu Pointern, die Länge lässt sich dementsprechend nicht mehr mit sizeof() ermitteln.

Wie sieht das bei C++ aus, gibts da ein Sprachfeature was das umgeht? Irgend eine Alternative zu sizeof extra für Arrays?
04.10.2009 14:31
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
friedrichheinze Offline
...und Kondensatoren.

Beiträge: 2.840
Registriert seit: Jul 2008
Beitrag #2
[C++] Verfallen Arrays auch zu Pointer?
Hm. Wenn du einen Array auf dem Stack hast, also zB
int array[10];
dann wirst du dessen Größe schon mit sizeof() abfragen können.
Wenn du aber einen Array dynamisch auf dem Heap hast und mit new alloziierst, dann bleibt dir doch nichts anderes übrig als einen Pointer auf die Startadresse zu speichern, oder?

Du könntest stattdessen einen vector benutzen. Der hat size().
04.10.2009 15:08
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
gandro Offline
Quälgeist

Beiträge: 8.951
Registriert seit: Jul 2008
Beitrag #3
[C++] Verfallen Arrays auch zu Pointer?
Ja stimmt. Hab zuwenig weit gedacht.

Hatte vermutet, dass die bei C++ das Array als Objekt implementiert haben, so dass man dann dank Operatoren-Überladung (nennt man das so?) oder ne Funktion die Länge ausgeben lassen, aber dann wärs ja nichts mit der C-Abwärtskompatibilität.
04.10.2009 15:29
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neue Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste