Lary B 0 Denunciar post Postado Janeiro 4, 2011 Oi pessoal, eu gostaria de saber como eu faço pra uma função retornar dois vetores em C? Eu já procurei, mas não entendi muito bem, se alguém puder me explicar agradeço desde já! Compartilhar este post Link para o post Compartilhar em outros sites
Eliseu M. 2 Denunciar post Postado Janeiro 4, 2011 Só com ponteiros. O return só lhe permite retornar uma variável, mas se houver ponteiros nos parâmetros, você pode passar variáveis globais e depois acessá-las, sem return: #include <stdlib.h> #include <stdio.h> int x = 0, y = 0; void mudar(int *x, int *y) { *x = 10; *y = 20; } int main() { mudar(&x, &y); printf("%d\t", x); printf("%d", y); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Janeiro 4, 2011 Como dito acima, em C só é possível passar valores como argumentos, e retornar um único valor de uma função. Como ponteiros podem ser usados como "cursores" para vetores (sequências contíguas, em memória, de elementos de mesmo tipo), a convenção é de se passar como argumento, ou retornar, um ponteiro para o primeiro elemento de um vetor. Agora imagine que se tenha um ponteiro para um ponteiro para int. Este ponteiro para ponteiro, que podemos chamar de p, seria declarado assim: int **p; // aqui, *p é ponteiro para int, **p é int Ao de-referenciar p uma vez, obtemos um ponteiro para int (que, como dito acima, pode ser usado para acessar os elementos de um vetor cujo primeiro elemento está no endereço contido neste ponteiro). Portanto, podemos percorrer, com p, um vetor de ponteiros para int. Um vetor deste tipo com 2 elementos nos permite acessar dois vetores de int. Compartilhar este post Link para o post Compartilhar em outros sites
Lary B 0 Denunciar post Postado Janeiro 5, 2011 Obrigada galera, eu consegui fazer o q eu queria, até mais. Obrigada galera, eu consegui fazer o q eu queria, até mais. Compartilhar este post Link para o post Compartilhar em outros sites