Lo único que tienes que hacer es trabajar con punteros, entonces cuando envíes la información por la función solo tienes que hacerlo así:
- En la que acabas de crear la variable la envías normal.
int variable = 0;
funcion(variable);
- Mientras que en la que recibes la variable le añades un "&".
int funcion(int& variable) {
.
.
.
}
Ej:
Código c++:
Ver originalint jugarpersona(string user1, num4& numuser) {
int num = 0, num2;
num4 numfrac; //aquí creo el numfrac que es una variable que yo mismo me he inventado para este programa que consta de 4 posiciones para números
cout << "Usuario = " << user1 << endl << endl;
cout << "Introduce un numero de 4 cifras: ";
cin >> num;
compnum(num, numfrac); //aquí llamo la función normalmente
for (int i = 0; i < 4; i++) numuser[i] = numfrac[i];
return 0;
}
int compnum (int num, num4& numfrac/* Aquí pongo el & para que se entiendan entre los dos subprogramas */) {
num4 numfraci;
for (int i = 0; i<4; i++){
numfraci[i] = num % 10;
num = num / 10;
}
int s = 3;
for (int i = 0; i<4; i++){
numfrac[s] = numfraci[i];
s--;
}
return 0;
}
Así aparte de esta manera puedes aprovechar y devolver otras cosas con el return, yo por ejemplo lo uso como sistema de detección de fallos, si no me devuelve en cada subprograma un 0 es que algo falla xD.