¿Cómo obtengo una función para modificar alguno de los parámetros?

Mi objetivo:

Tengo que crear una función que sume dos fracciones.

He definido un nuevostruct (typedef) llamadofraction.

La función no puede tener un tipo de retornofraction, tiene que servoid, por lo tanto, tiene que modificar uno de los parámetros ingresados, ¿cómo puedo lograr esto? ¿Punteros tal vez? ¿Cómo modificarías mi código para lograrlo?

Este es mi código:

typedef struct{
    char sign;
    int num;
    int den;
} fraction;

void sum(fraction, fraction, fraction);

int main(void) {

    fraction op1, op2, solution;

    sum(op1, op2, solution);

    return 0;
}

void sum(fraction f1, fraction f2, fraction sol){

    if (f1.sign == '-') {
        f1.num = f1.num * -1;
    }

    if (f2.sign == '-') {
        f2.num = f2.num * -1;
    }

    sol.num = f1.num*f1.den + f2.num*f1.den;
    sol.den = f1.den * f2.den;
    sol.sign = '+';

    if (sol.num < 0) {
        sol.sign = '-';
        sol.num = sol.num * -1;
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta