Avatar ·

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.