Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: jaxoR en 17 Febrero 2015, 02:17 am



Título: Crear registro
Publicado por: jaxoR en 17 Febrero 2015, 02:17 am
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


Título: Re: Crear registro
Publicado por: 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?


Título: Re: Crear registro
Publicado por: jaxoR en 17 Febrero 2015, 16:36 pm
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


Título: Re: Crear registro
Publicado por: eferion en 17 Febrero 2015, 17:12 pm
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
  1. typedef struct
  2. {
  3.  int numElems;
  4.  int* data;
  5. } Array;
  6.  
  7. int main( )
  8. {
  9.  Array array;
  10.  scanf( "%d", &array.numElems );
  11.  
  12.  array.data = (int*)malloc( array.numElems * sizeof( int ) );
  13.  
  14.  int i;
  15.  for( i=0; i<array.numElems; i++ )
  16.    array.data[ i ] = i * 2 + 5;
  17.  
  18.  for( i=0; i<array.numElems; i++ )
  19.    printf( "[%d] -> %d\n", i, array.data[ i ] );
  20.  
  21.  free( array.data );
  22. }


Título: Re: Crear registro
Publicado por: jaxoR en 17 Febrero 2015, 17:29 pm
Mirá, te dejo un ejemplo de lo que quiero:

Código
  1. int campos;
  2. printf("Cuantos campos de enteros quieres?");
  3. scanf("%d", &campos);
  4.  
  5. // Pongamos de ejemplo que ingresa 5
  6.  
  7. typedef struct
  8. {
  9.  int e1;
  10.  int e2;
  11.  int e3;
  12.  int e4;
  13.  int e5;
  14. } Array;


Título: Re: Crear registro
Publicado por: eferion en 17 Febrero 2015, 17:38 pm
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.