¿Cuántos niveles de anidamiento de pointers puede haber en C++?
Hola a todos. Llevo aproximadamente un año programando en C++ y me atormenta una pregunta teórica. Sé que se pueden crear pointers a pointers, por ejemplo `int** ptr`, e incluso triple pointers `int*** ptr`. Pero, ¿hasta dónde se puede llegar? ¿Existe alguna limitación en el estándar del lenguaje o depende del compilador/plataforma?
Por ejemplo, puedo escribir:
```cpp
int a = 5;
int* p1 = &a;
int** p2 = &p1;
int*** p3 = &p2;
int**** p4 = &p3;
// y así sucesivamente...
```
Pero, ¿qué pasa si intento crear un pointer con 100 niveles de anidamiento? ¿Se compilará? Y si es así, ¿cómo funcionará en runtime? Me parece que en la práctica nadie usa más de 2-3 niveles, pero me gustaría entender los límites formales.
También me interesa saber si hay diferencia entre C y C++ en este aspecto. He oído que en C la limitación puede ser más estricta. Y además: ¿afecta esto al rendimiento? Agradecería una respuesta detallada con ejemplos y referencias al estándar, si es posible.
No answers yet.
Inicia sesión para dejar una respuesta
Blogs