Galera, sou novo aqui no fórum, este é o meu primeiro post
Venho com uma dúvida da qual preciso esclarecimento breve, isto é, rápido, mas sem abusar da boa vontade de vocês ^^
Bem, o negócio é o seguinte. Eu já vi bastante a respeito de C e agora, como estou iniciando em POO, acabei me deparando com um paradigma.
Como já se sabe, o Java dispõe de uma “ferramenta” chamada Garbage Collector (me corrijam se estiver errado). Essa thread limpa a porcariada que fica solta sem dono na memória, seja quando um escopo termina, ou quando há uma desalocação voluntária por parte da aplicação.
OK, até ai tudo bem, ele faz o serviço sujo, o que deixa alguns procedimentos talvez até mais inteligentes e menos sobrecarregados em termos de consumo de memória. Entretanto, o C/C++ não possui essa facilidade, e a idéia de não se atentar as tais referências (os ponteiros) pode chegar ao ponto de criar uma “bomba” e explodir justo num momento inoportuno. Pensando nisso, eu sempre procuro sanar as dúvidas em relação as alternativas do uso de ponteiros para evitar armadilhas como segmentation fault, buffer overrun, etc.
Afinal, a questão é: como seria uma função do seguinte tipo (C++) implementada em Java?
void setRua(const char r, char *rua)
{
while(*rua++ = *r++);
}
Eu, particularmente já vi coisas do tipo
void setRua(String r)
{
rua = r; //Supõe-se "rua" como um atributo da classe Endereco, por exemplo.
}
e me deixaram intrigado, pois há um grande perigo em trabalhar com uma String que não teve um espaço reservado na memória, isto é, uma constante. Será que ao atribuir para uma memória sem alocação prévia não dará nenhum problema? Uma invasão de memória? Falha de seguementação?
Aguardo sugestões! Já agradeço antecipadamente.
[]s,
Exploit.