Problemas con struct i funciones

arcadi2008
10 de Abril del 2010
Buenas a todos,

soy un principiante en C y tengo un problema con crear struct y utilizarlas para funciones. Me dice error cuando defino las estructuras y no se que pasa...

Tengo que crear una struct en el programa principal, esta estructura tiene nombres de usuarios que estan dados de alta, los puertos y las IPs. El que pasa es que me dice error cuando defino las estructuras y no encuentro el error.

En el programa tengo que coger por el teclado el nombre de usuario y mirar si esta de alta en el servidor (y si estan dados de alta actualizo los datos), para esto tengo una funcion que es:

Código:

int USUARIO_ALTA( char nombre_usuario[], int longitud_nombre, int Puerto_TCP, char usuario_ip[], tengo que passar la estructura para que se modifique y actualize los datos);

devuelve 0 si ok o -1 si el usuario no esta dado de alta


Como tengo que pasar la estructura dentro la funcion para que se modifique (parametro de entrada y salida)?

En grandes rasgos el programa es:

Código:


void main () {


//Definimos las estructuras

struct USUARIOS_ALTAS {
#define Altas 2 //Nº de usuarios dados de alta
char Usuarios [Altas] [10] = {"Javier","Manuel"}; //Nombre de usuarios
char longUsuarios [Altas] = {6, 6}; //Longitud de los nombres
int Port_Usuarios [Altas] = {0,0}; //Puerto que estan connectador
unsigned long IP_Usuarios [Altas]; //Ip que estan connectador
};




//Creamos las variables

struct USUARIOS_ALTAS usuarios_altas;
char nombre_usuario [10];
int longitud_nombre;
int Puerto_TCP;
char usuario_ip [16];


****COGEMOS LOS DATOS****

USUARIO_ALTA( nombre_usuario[], longitud_nombre, Puerto_TCP, usuario_ip[], **tengo que passar la estructura para que se modifique y actualize los datos (parametro entrada/salica [¿Como lo hago?])**);


}



1- Problema: Como defino la estructura, me sale incorrecta..
2- Problema: ¿Como escribo para que la estructura sea un parametro de entrada/salida en la funcion?

Muchas gracias

trasgu
10 de Abril del 2010
-Define la estructura y la función antes de la función main():
#include <string.h>
struct USUARIOS_ALTAS {
#define Altas 2 //Nº de usuarios dados de alta
char Usuarios[Altas][10]; //Nombre de usuarios
char longUsuarios[Altas]; //Longitud de los nombres
int Port_Usuarios[Altas]; //Puerto que estan connectador
unsigned long IP_Usuarios[Altas]; //Ip que estan connectador
};
bool USUARIO_ALTA(struct USUARIOS_ALTAS *usuarios_altas,char nombre_usuario[10],int longitud_nombre,int Puerto_TCP,char usuario_ip[16]);

-En la función main():
USUARIOS_ALTAS usuarios_altas;
strncpy(usuarios_altas.Usuarios[0],(const char*)\"Javier\\0\",7);
strncpy(usuarios_altas.Usuarios[1],(const char*)\"Manuel\\0\",7);
usuarios_altas.longUsuarios[0] = 6;
usuarios_altas.longUsuarios[1] = 6;
usuarios_altas.Port_Usuarios[0] = 0;
usuarios_altas.Port_Usuarios[1] = 0;
char nombre_usuario[10]=\"Juan\\0\";
int longitud_nombre=4;
int Puerto_TCP=80;
char usuario_ip[16]=\"123.456.789\";
bool resultado;
//Llama a la función USUARIO_ALTA
resultado=USUARIO_ALTA(&usuarios_altas,nombre_usuario,longitud_nombre,Puerto_TCP,usuario_ip);

-Implementa la función USUARIO_ALTA:
bool USUARIO_ALTA(struct USUARIOS_ALTAS *usuarios_altas,char nombre_usuario[10],int longitud_nombre,int Puerto_TCP,char usuario_ip[16]){
return true;
}