Wenn ich int x[10]
und int *y
habe, wie kann ich den Unterschied zwischen den beiden erkennen?
Ich habe zwei Ideen:
sizeof() ist anders.
&x hat einen anderen Typ ---
int (*p)[10] = &x
funktioniert, aber nichtint **q = &x
.
Noch andere Ideen?
In einigen Vorlagenbibliothekscode muss ich bestimmen, ob ein Zeiger ein "echter" Zeiger ist oder von einem Array abgeleitet wurde. Ich kann keinen Quellcode ansehen, da der Bibliotheksnutzer erst existiert, wenn ich die Bibliothek schreibe. ... Ich kann dies umgehen, indem ich den Code neu schreibe, also ist dies jetzt nur eine theoretische Übung.