Crear registro

Iniciado por jaxoR, 17 Febrero 2015, 02:17 AM

0 Miembros y 1 Visitante están viendo este tema.

jaxoR

Hola, hoy tenía una duda. Quiero crear un registro dependiendo de cuantos campos escriba el usuario.

Ejemplo:

El usuario ingresa que quiere un registro de 5 enteros. Como hago para crear un registro dependiendo de lo que escribe el usuario?

Saludos

eferion

Tu pregunta es un poco escueta.

¿Hay algún límite a esa configuración? Piénsatelo bien, libertad total suele implicar más cantidad de código y muchas veces no es algo realizable.

¿Cómo elige el usuario qué configuración quiere?

¿Qué uso se le quiere dar después a esa configuración?

jaxoR

#2
Cita de: eferion en 17 Febrero 2015, 09:08 AM
Tu pregunta es un poco escueta.

¿Hay algún límite a esa configuración? Piénsatelo bien, libertad total suele implicar más cantidad de código y muchas veces no es algo realizable.

¿Cómo elige el usuario qué configuración quiere?

¿Qué uso se le quiere dar después a esa configuración?

Hola, no importa el límite.

Al usuario, por ejemplo, le pregunto cuantos campos quiere que tenga el registro. Ingresa 4, y ahí necesito saber como crear un registro de 4 campos. No importa si son enteros o chars, me interesa saber si se puede hacer con un for o while.

Depende, solo quiero saber como hacerlo porque sería una forma interesante de crear programas.

Saludos

eferion

Te sigues explicando como un libro cerrado.

A ver, si tu idea es crear un número X de elementos enteros puedes usar malloc:

Código (cpp) [Seleccionar]

typedef struct
{
 int numElems;
 int* data;
} Array;

int main( )
{
 Array array;
 scanf( "%d", &array.numElems );

 array.data = (int*)malloc( array.numElems * sizeof( int ) );

 int i;
 for( i=0; i<array.numElems; i++ )
   array.data[ i ] = i * 2 + 5;

 for( i=0; i<array.numElems; i++ )
   printf( "[%d] -> %d\n", i, array.data[ i ] );

 free( array.data );
}

jaxoR

Mirá, te dejo un ejemplo de lo que quiero:

Código (cpp) [Seleccionar]
int campos;
printf("Cuantos campos de enteros quieres?");
scanf("%d", &campos);

// Pongamos de ejemplo que ingresa 5

typedef struct
{
  int e1;
  int e2;
  int e3;
  int e4;
  int e5;
} Array;

eferion

Pues si pierdes dos minutos en revisar el código que he puesto en la respuesta anterior, te darás cuenta de que puedes añadir el número de elementos que te de la gana.

Si no quieres crear un array, siempre puedes crear una lista enlazada... aunque según lo que has puesto en el último mensaje me parece innecesario.