Thommason Postado Março 15, 2009 Denunciar Share Postado Março 15, 2009 Ainda não vi uma utilidade em saber qual é a posição de uma variável na memória. ._.Muito menos utilizar referências.alguém poderia me esclarecer um pouco mais sobre esse assunto?Grato :] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Março 15, 2009 Denunciar Share Postado Março 15, 2009 http://www.inf.ufpr.br/nicolui/grad/ci067/...7Ponteiros.htmlhttp://www.inf.ufpr.br/nicolui/grad/ci067/...c_coes_Qua.htmlQuando mexer com alocação dinâmica, verá que ponteiro é mais que fundamental. Imagine a velha funão troca(x, y), que atribui a x o valor de y e vice-versa. Como resolver isso sem usar ponteiro? Você poderia retornar um vetor com as duas variáveis, mas seria uma bela gambiarra. Por isso existe passagem por referência Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Março 15, 2009 Denunciar Share Postado Março 15, 2009 Isso já foi discutido aqui no fórumOlhe esse link: http://scriptbrasil.com.br/forum/index.php?showtopic=132919Você poderia retornar um vetor com as duas variáveis, mas seria uma bela gambiarra.Na verdade ao passar vetores estamos fazendo uma passagem por referência Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Março 15, 2009 Denunciar Share Postado Março 15, 2009 Na verdade ao passar vetores estamos fazendo uma passagem por referênciaO que eu quis dizer foi isto:Em vez de fazer assim:void troca(int *x, int*y) { int aux = *x; *x = *y; *y = aux; } fazer assim: int * troca(int x, int y() { int retorno[2]; /* 0 representa x */ retorno[0] = y; /* 1 representa y */ retorno[1] = x; return retorno; }Aí faz as devidas atribuições no programa principal. Isso seria uma bela gambiarra. ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Março 15, 2009 Denunciar Share Postado Março 15, 2009 Testei aqui e não consegui fazer funcionar esse seu segundo código...É porque você retornou o endereço de uma variável local (o compilador até emite um warning)Talvez dê pra fazer isso com uma variável static charAí utilizaria itoa() pra converter o número pra um char, separava os dois números por algum caractere, retornava essa variável pra outra função, separava os dois números e salvava de novoUma grandeeee gambiarra mesmo !Mas isso foge do assunto...Resumindo: A melhor forma de se fazer isso é com ponteiros !Isso seria uma bela gambiarra.Onde já se viu gambiarra bonita ??hauahuahua Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 15, 2009 Denunciar Share Postado Março 15, 2009 Testei aqui e não consegui fazer funcionar esse seu segundo código...É porque você retornou o endereço de uma variável local (o compilador até emite um warning)o espaco do array deveria ser alocado com o malloc ou o new, porque senao o endereco é liberado depois do return e você não vai conseguir pegar os valores. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Thommason
Ainda não vi uma utilidade em saber qual é a posição de uma variável na memória. ._.
Muito menos utilizar referências.
alguém poderia me esclarecer um pouco mais sobre esse assunto?
Grato :]
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.