Bom dia a todos. Minha dúvida tem relação a um outro tópico AULA explicado pelo Paulo: https://www.vivaolinux.com.br/topico/C-C++/Duvida-Basica-sobre-ponteiro/
Eu ainda estou estudando o tópico, por ter bastante coisa ainda pra entender! Mais uma vez agradeçendo ao Paulo pelas enormes aulas, uma hora vou entender sobre ponteiros!
As perguntas abaixo são apenas pra ter certeza se entendi o tópico acima corretamente!
Questão 1:
1) Comando free em ponteiros. Entendi que na declaração abaixo, eu não tenho que usar o free! Correto?
2) Entendi que free somente se usa com malloc e etc... certo?
char *Texto;
scanf("%m[\10-\377]", &Texto); // Uso o ponteiro aqui
// free(Texto); // Não é pra ser usado aqui certo? Fim do programa
Questão 2:
1) Entendi que posso fazer da forma que informo abaixo sem dar bugs no meu programa
2) Entendi que posso sempre mudar o valor do ponteiro, o que ocorre é que ele vai alocar isso em outro lugar novo na memória, deixando como lixo os antigos valores na memória até que o programa seja encerrado.
3) Entendi que bagunçei minha memória, pq perco o controle do que foi alocado anteriormente.
4) Se tenho um ponteiro dentro de uma função, a memória que ele usou é liberada qdo sai da função? Ou também segue a regra de liberar somente qdo o programa encerra?
5) Mas toda a memória é liberada qdo o programa for finalizado Correto?
const char *Ptr = "Mini Text";
Ptr = "Texto muito Maior que o Mini Text";
Ptr = "Imagine aqui um Texto com 100.000 Caracteres";
Ptr = "Imagine aqui um Texto com 500.000 Caracteres"; Fim do programa, a memória que os ponteiros usaram, está liberada no meu S.O sem problemas certo?