Você está atribuindo o valor 1 ao ponteiro a que é um parâmetro.
A solução é atribuir o valor 1 ao inteiro que é referenciado pelo ponteiro: *a = 1
Ative os warnings de seu compilador, se tivesse ativo já saberia do problema. Acho que Clang até gera erro em lugar de warning. Mas se não avisar mude de compilador.
F
f.java13
Isso funcionou, porém se eu passar mais de um parâmetro em minha função não funciona, o segundo valor é 0, no caso do exemplo abaixo o “b=2”.
O comando return tem a seguinte forma geral: return valor_de_retorno; ou return;
Digamos que uma função está sendo executada. Quando se chega a uma declaração return a função é encerrada imediatamente e, se o valor de retorno é informado, a função retorna este valor.
Tem razão, eu deveria fazer return *a=1, *b=2;
Agora deu certo, obrigado pela ajuda.
F
f.java13
Me ajuda com mais uma coisa?
Nesse meu exemplo aí, deixando uma variavel global junto com as a1, a2… chamamos ela de char nome[20]
como eu faço pra alterar essa cadeia de caracteres dentro da minha função com o return? Eu iria retornar assim:
return *a1=1, *a2=2, *nome=???????;
K
Kronal
Não faz isso rsrs
Você pode ter mais de uma linha no procedimento.
intpassagem(int*a,int*b){*a=1;*b=2;return*a;}
Isso caso for necessário realmente retornar alguma coisa. Caso não for é só declarar teu procedimento como retornando void, ou seja, muda para void passagem(int *a, int *b) { e remove o return.