Ich habe den folgenden Code:Ist es möglich, Funktionen auf einem Zeiger zu verwenden?
int n =3;
int A[n] = {3,2,1}, B[n], C[n];
han(n, A, B, C);
//--------------
void han(int disk, int source[], int target[], int spare[])
{
...
target[target -> end()] = source -> back();
source -> back() = 0;
// error : request for member 'end' in '* target', which is of non-class type 'int'
...
}
Ich weiß, dass innerhalb han
int target[]
ein Zeiger ist. Gibt es eine Möglichkeit target.end()
und source.back()
innen han
zu benutzen?
Nein, gibt es nicht so etwas, anders als in Java, Actionscript, etc. Um das letzte Element zu wissen, wo ist, Sie ein Argument hinzufügen sollten sagen, wie groß Ihr Array ist. Siehe Abschnitt "Arrays als Parameter" in [dieses Tutorial] (http://www.cplusplus.com/doc/tutorial/arrays/). Sie könnten stattdessen auch [Vektoren] (http://www.cplusplus.com/reference/vector/vector/vector/) verwenden. Sie können 'myVect.back()' auf einem Vektor verwenden. –
Was ist los mit Dingen wie 'target [disk-1]'? –