Quantos níveis de aninhamento de ponteiros podem existir em C++?
Olá a todos. Escrevo em C++ há cerca de um ano, e uma questão teórica me incomoda. Eu sei que é possível criar ponteiros para ponteiros, por exemplo `int** ptr`, e até ponteiros triplos `int*** ptr`. Mas até onde podemos ir? Existe alguma limitação no padrão da linguagem, ou isso depende do compilador/plataforma?
Por exemplo, posso escrever:
```cpp
int a = 5;
int* p1 = &a;
int** p2 = &p1;
int*** p3 = &p2;
int**** p4 = &p3;
// e assim por diante...
```
Mas e se eu tentar criar um ponteiro com 100 níveis de aninhamento? Isso compilaria? E se sim, como funcionaria em runtime? Parece-me que na prática ninguém usa mais de 2-3 níveis, mas quero entender os limites formais.
Também tenho interesse em saber se há diferença entre C e C++ nessa questão. Ouvi dizer que em C a limitação pode ser mais rigorosa. E mais: isso afeta o desempenho? Agradeço por uma resposta detalhada com exemplos e referências ao padrão, se possível.
No answers yet.
Faça login para deixar uma resposta