No código abaixo, peço para digitar dois inteiros que são utilizados na soma. É possível visualizar que o ponteiro foi utilizado corretamente: a variável assume o seu novo valor, dado pela função. O 'porém' é que quando rodo o programa ele me pede sempre 3 'scanf'. Ou seja, tenho de digitar 3 inteiros para ele executar. De fato ele faz a soma correta dos dois primeiros, mas porque ele me pede para digitar algo mais?
#include <stdio.h>
/*
Introdução à linguagem 'C'. Exercício:
Escreva uma função 'soma' que recebe um ponteiro de inteiro 'num'
e mais dois inteiros a e b.
A função deve calcular a soma de a+b em num.
*/
void soma(int* num, int a, int b) {
*num = a + b;
printf("soma num = %d\n", *num);
}
int main() {
int num = 0;
int a;
int b ;
scanf("%d\n", &a);
scanf("%d\n", &b);
printf("main num = %d\n", num);
soma(&num, a, b);
printf("main num = %d\n", num);
}