Caso utilizável de ponteiro para matriz com limites não especificados em C ++ (não em C)
Considere o seguinte código:
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;
}
Em C puro, você pode atribuir um ponteiro para esse tipo de endereço de uma matriz de qualquer dimensão. Mas em C ++ você não pode. Eu encontrei um caso em que o compilador permite atribuir valor a esse ponteiro:
struct C
{
static int v[];
};
int main()
{
int (*p)[] = &C::v; // works in C++ if 'v' isn't defined (only declared)
return 0;
}
Mas não foi possível encontrar nenhum caso útil desse código.
Alguém pode dar um exemplo útil (em C ++) de ponteiro para matriz com limites não especificados? Ou é apenas um vestígio remanescente de C?