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?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage