Programación General > C++ Builder
Duda Sobre C
(1/1)
Gerx:
Hola a todos!
Me acabo de registrar porque soy principiante aprendiendo C y bueno, este foro es muy conocido y podemos hacer intercambios de informacion...
Bueno... la duda sobre C es sobre la utilizacion de estructuras.
El codigo es el siguiente:
--- Código: Text ---/*Estructuras I*//*El siguiente programa crea varias estructuras y las usa de acuerdocon lo que imprime el usuario*/ #include <stdio.h>void main(void){ /*Declaracion de variables:*/ /*Declaro la estructura:*/ struct persona { /*Aca pongo los tipos de datos:*/ /*Tipos de datos de cadena de caracteres*/ char nombre[15]; char apellido[45]; char direccion[100]; char descripcion[100]; char e_mail[20]; /*Tipos de datos numericos:*/ int edad[3]; int codigo_postal[10]; int telefono[10]; int celular[30]; }; int n_R=0; /*Inicio del programa*/ /*Doy instrucciones*/ printf("Escribi el numero de registros que vas a usar: "); scanf("%d", &n_R); /*Declaro la estructura:*/ struct persona MIPERSONA[n_R];}
Bueno, el error radica en la linea en la cual se crea la instancia de la estructura, mas bien dicho el arreglo de la estructura, mi compilador, el Turbo C, dice que hay un error de sintaxis.
Linea:
--- Código: Text ---struct persona MIPERSONA[n_R]; Si yo declaro la estructura fuera del main y la instancia de la estrucutar tambien, no hay errores pero no me serviria para lo que yo quiero que es que el usuario introduzca el numero de indices para el arreglo de la estructura...
Bueno...
Si alguien me puede ayudar se lo agradeceria...
Un saludo
German
giropau:
O sea que quieres hacer un array de personas. Yo hice una cosa parecida pero con AnsiStrings.
Primero declaro la variable como puntero:
AnsiString *x;
...
x = new AnsiString[mida];
A mi me funciona. Pruebalo y nos cuentas.
fORU-:
mmm al parecer tiene que ser constante el valor que le quieres asignar al arreglo.
Si de algo te sirve puedes ver que valor toma como maximo un arreglo y ponerselo por default, inicializando todo como null y despues puedes usar una variable para decir cuanto vas a caputrar. Te dejo mas que un ejemplo en c es un ejemplo de mi logica
int captura=0;
int i;
char nombre[20];
struct persona Mipersona[LIMITE]={NULL};
printf("Numero de persona a capturar: ");
scanf("%d",&captura);
for(i=0;i<captura;i++)
{ gets(nombre);
Mipersona.nombre=nombre
....
....
}
mm la parte Mipersona.nombre=nombre esta mal, pero como te dije MAS QUE UN EJEMPLO DE C ES UN EJEMPLO DE MI LOGICA
menofcoyuca:
--- Cita de: "Gerx" --- Hola a todos!
Me acabo de registrar porque soy principiante aprendiendo C y bueno, este foro es muy conocido y podemos hacer intercambios de informacion...
Bueno... la duda sobre C es sobre la utilizacion de estructuras.
El codigo es el siguiente:
--- Código: Text ---/*Estructuras I*//*El siguiente programa crea varias estructuras y las usa de acuerdocon lo que imprime el usuario*/ #include <stdio.h>void main(void){ /*Declaracion de variables:*/ /*Declaro la estructura:*/ struct persona { /*Aca pongo los tipos de datos:*/ /*Tipos de datos de cadena de caracteres*/ char nombre[15]; char apellido[45]; char direccion[100]; char descripcion[100]; char e_mail[20]; /*Tipos de datos numericos:*/ int edad[3]; int codigo_postal[10]; int telefono[10]; int celular[30]; }; int n_R=0; /*Inicio del programa*/ /*Doy instrucciones*/ printf("Escribi el numero de registros que vas a usar: "); scanf("%d", &n_R); /*Declaro la estructura:*/ struct persona MIPERSONA[n_R];}
Bueno, el error radica en la linea en la cual se crea la instancia de la estructura, mas bien dicho el arreglo de la estructura, mi compilador, el Turbo C, dice que hay un error de sintaxis.
Linea:
--- Código: Text ---struct persona MIPERSONA[n_R]; Si yo declaro la estructura fuera del main y la instancia de la estrucutar tambien, no hay errores pero no me serviria para lo que yo quiero que es que el usuario introduzca el numero de indices para el arreglo de la estructura...
Bueno...
Si alguien me puede ayudar se lo agradeceria...
Un saludo
German
--- Fin de la cita ---
cambia el valor del identificador n_R=0 a n_R=1 o mayor y se termina el problema, recuerda que un arreglo no de puede declarar en cero (0)
saludos
Navegación
Ir a la versión completa