FennFelis
(usa Ubuntu)
Enviado em 18/04/2012 - 21:15h
brunorf escreveu:
Então basta usar um ponteiro de ponteiro uai:
#include <stdio.h>
int main(){
int i, *j, **k;
i = 3;
j = &i;
k = &j;
printf("Endereço de j:%p\n", k);
printf("Endereço de i:%p\n", j);
printf("Valor de i:%d\n", **k);
}
Entao cara ai que ta, estou tentando criar uma funcao que, se der determinado valor, retorne um endereço de variavel diferente, para que eu nao fique testando todos os possiveis casos (8³ linhas para 25 funcao), entende?
entao eu pensei nisso daqui:
#include <stdio.h>
struct tipo{
int r_valor1;
int r_valor2;
int r_valor3;
/*
...
*/
};
void funcao1(struct tipo *m, int val_1, int val_2, int val_3){
//val_1 e val_2 e val_3 pode assumir valores 1, 2 ou 3.
//Se val_1==1, entao eu pego a variavel m.r_valor1
//Se val_1==2, entao eu pego a variavel m.r_valor2
//Se val_1==3, entao eu pego a variavel m.r_valor3
//Se val_2==1, entao eu pego a variavel m.r_valor1
//Assim por diante ate val_3==3, entao pego a variavel m.r_valor3
//Um metodo para se fazer isso é usando a combinacao (3³)
//Outro seria buscar o endereco da variavel, justamente isso q quero fazer, mas nao consigo
//Entao pensei em buscar o valor da val_1 e retornar o endereco r_valor1 ou r_valor2 ou r_valor3
//e fazer tipo isso daqui
//funcao2 que eu n sei se é bem assim mesmo, ou necessitaria de um ponteiro.
//Ex: p=funcao2(m, val_1), inclusive n sei se m deveria passar com ou sem &
soma(funcao2(m, val_1), funcao2(m, val_2), funcao2(m, val_3));
//soma(arg1, arg2, arg3) seria arg1=arg2+arg3
}
int main(){
struct tipo m;
m.r_valor1=0;
m.r_valor2=2;
m.r_valor3=-1;
int valor_1, valor_2, valor_3;
funcao1(&m, valor_1, valor_2, valor_3);
return 0;
}