1
resposta

O resultado não foi loop

Ao executar o script e acabou imprimindo um monte de linhas com teste e depois deu na ultima linha:

zsh: segmentation fault  bash teste.sh

seria um estouro de memoria? não precisei dar um break no script.

1 resposta

Olá Delto, tudo bem com você?

Este é um comportamento esperado, o script irá entrar em um loop infinito, imprimindo a linha vazia repetidamente, seguida por muitas linhas com a palavra teste e, eventualmente, resultando em um erro segmentation fault devido ao estouro de pilha. Isso ocorre porque cada chamada da função cria um novo frame na pilha de execução, e como a função chama a si mesma repetidamente sem condição de parada, a pilha fica cheia até esgotar a memória disponível para pilha, resultando em um estouro de memória. Portanto, a alternativa correta do exercício é a letra A.

A título de curiosidade, para que isso não ocorresse, deveríamos adicionar uma condição de parada, como um break ou uma verificação de algum valor para encerrar o loop.

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software