Array-Länge mit Zeigern

8

Wie in C ++ erhalten Array-Länge nur mit Zeigern? Ich weiß, dass der Name der Registerkarte Zeiger auf das erste Element ist, aber was als nächstes?

    
owca 17.03.2010, 00:01
quelle

4 Antworten

9

Sie können nicht. Ein Zeiger ist nur ein Speicherort und enthält nichts Besonderes, das die Größe bestimmen könnte.

Da dies C ++ ist, können Sie das Array wie folgt übergeben:

%Vor%

Aber sonst müssen Sie Start & amp; beenden und eine Subtraktion machen, wie Alok vorschlägt, ein Start & amp; Größe, wie Sie vorschlagen, oder Graben Sie ein statisches Array und verwenden Sie einen Vektor, wie Tyler suggeriert.

Wenn Sie die Größe des Arrays kennen, mit dem Sie arbeiten, können Sie typedef :

erstellen %Vor%

Und nur für die Größe:

%Vor%

Ich benutze diese Dienstprogrammfunktionen von Zeit zu Zeit.

    
GManNickG 17.03.2010, 00:10
quelle
15

Sie können es nicht tun. Sie müssen die Array-Länge zusammen mit dem Array-Zeiger übergeben, oder Sie müssen ein Container-Objekt wie std::vector verwenden.

    
Tyler McHenry 17.03.2010 00:02
quelle
3

Du meinst etwas wie:

%Vor%     
Alok Singhal 17.03.2010 00:04
quelle
0

Das können Sie nicht, es sei denn, Sie wissen, worauf der Endzeiger verweist. Im Fall von char-Arrays ist es ein '\ 0', so dass Sie eine Schleife ausführen können, bis Sie dieses Zeichen gelesen haben, um die Länge herauszufinden.

    
JRL 17.03.2010 00:09
quelle

Tags und Links