Não existe limite real, mas o limite existe. Todos os ponteiros são variáveis que geralmente são armazenadas na pilha e não na pilha . A pilha geralmente é pequena (é possível alterar seu tamanho durante alguns links). Então, digamos que você tenha uma pilha de 4 MB, o que é tamanho bastante normal. Digamos que tenhamos ponteiro com tamanho de 4 bytes (o tamanho do ponteiro não é o mesmo, dependendo das configurações de arquitetura, destino e compilador).
Nesse caso 4 MB / 4 b = 1024
, o número máximo possível seria 1048576, mas não devemos ignorar o fato de que outras coisas estão na pilha.
No entanto, alguns compiladores podem ter um número máximo de cadeias de ponteiros, mas o limite é o tamanho da pilha. Portanto, se você aumentar o tamanho da pilha durante o vínculo com o infinito e tiver uma máquina com memória infinita, que executa o SO que gerencia essa memória, assim você terá uma cadeia de ponteiros ilimitada.
Se você usar int *ptr = new int;
e colocar o ponteiro na pilha, essa não é a maneira mais usual de limitar o tamanho da pilha, não a pilha.
EDIT Apenas perceba isso infinity / 2 = infinity
. Se a máquina tiver mais memória, o tamanho do ponteiro aumentará. Portanto, se a memória é infinita e o tamanho do ponteiro é infinito, então são más notícias ... :)