Buenas, mi duda es como pasar un registro por referencia a una función.
En C++ solo tienes que indicar en la declaración de la función que el parámetro en cuestión es una referencia con "&", por ejemplo:
#include <iostream>
using std::cin;
struct punto {
int x;
int y;
};
void leer_punto(punto& p);
// ...
int main()
{
punto p;
leer_punto(p);
// ...
return 0;
}
void leer_punto(punto& p)
{
cin >> p.x;
cin >> p.y;
}
Un saludo
En C cambia algo?
Por supuesto que si ya que C no tiene referencias (pueden emularse mediante punteros).
Un saludo
Muchas gracias rir!
En realidad no se resolvio, sigo teniendo el mismo problema:
struct registro
{
char nombre[30];
char apellido[30];
int telefono;
int edad;
};
void SetearReg(registro *clientes, int *i)
{
for(i = 0; i >= 200; i++)
{
clientes[i].telefono = 0;
clientes[i].edad = 0;
}
}
int main()
{
registro clientes[200];
int i;
SetearReg(&clientes, &i);
}
Los errores:
||=== Build: Debug in Registro de clientes (compiler: GNU GCC Compiler) ===|
|13|error: unknown type name 'registro'|
||In function 'main':|
|27|error: unknown type name 'registro'|
Debes declarar correctamente la estructura struct registro clientes[200];
Un saludo.
Cita de: wiD^ en 26 Agosto 2014, 17:19 PM
En realidad no se resolvio, sigo teniendo el mismo problema:
Te convendría mas declarar la siguiente estructura de esta manera:
typedef struct
{
char nombre[30];
char apellido[30];
int telefono;
int edad;
}registro;
Y en la función SetearReg la condición de terminación de for es incorrecta (i >= 200) quedaría así :
void SetearReg(registro *clientes)
{
int i;
for(i = 0; i <= 200; i++)
{
clientes[i].telefono = 0;
clientes[i].edad = 0;
}
}
Saludos
Y si quiero pasar un arreglo de registros?
Cita de: wiD^ en 26 Agosto 2014, 20:26 PMY si quiero pasar un arreglo de registros?
No entiendo la pregunta ya que eso es lo que estas haciendo en tu programa:
int main()
{
registro clientes[200];
int i;
SetearReg(&clientes, &i);
}
Por cierto no debes utilizar el operador "dirección de" (el '&') en la llamada a función y el segundo parámetro no es necesario. Y se debe utilizar la palabra reservada "struct" en la declaración del array a menos que lo estés compilando como C++.
Por ultimo lo único que debes hacer es revisar con cuidado la función "SetearReg" cortesía de
Blaster y aplicar las correcciones a tu programa.
Un saludo