Verwendbarer Fall eines Zeigers auf ein Array mit nicht angegebenen Grenzen in C ++ (nicht in C)
Betrachten Sie folgenden Code:
int main() {
int (*p)[]; // pointer to array with unspecified bounds
int a[] = {1};
int b[] = {1,2};
p = &a; // works in C but not in C++
p = &b; // works in C but not in C++
return 0;
}
In reinem C können Sie einen Zeiger auf diesen Adresstyp eines Arrays beliebiger Dimension zuweisen. In C ++ ist dies jedoch nicht möglich. Ich habe einen Fall gefunden, in dem es der Compiler erlaubt, einem solchen Zeiger einen Wert zuzuweisen:
struct C
{
static int v[];
};
int main()
{
int (*p)[] = &C::v; // works in C++ if 'v' isn't defined (only declared)
return 0;
}
Konnte aber keinen nützlichen Fall für diesen Code finden.
Kann jemand ein nützliches Beispiel (in C ++) für einen Zeiger auf ein Array mit nicht angegebenen Grenzen geben? Oder ist es nur noch Spuren von C?