Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: fafafa01 en 21 Junio 2016, 22:31 pm



Título: crear mi propio char **argv
Publicado por: fafafa01 en 21 Junio 2016, 22:31 pm
buenas, estaba pensando que se necesitaría para poder crear el código que permite guardar en un arreglo cierta cantidad de datos int que se le ingrese, que deben estar separadas por espacio (la diferencia seria es que en ves de char sea un arreglo de int).

Podría usar scanf para pasar los datos a una variable, pero después no se como pasarla a un arreglo, creo que estoy obligado a usar memoria dinámica ¿no?

si alguien tiene alguna idea o ya hizo algo parecido me serviría, saludos.


Título: Re: crear mi propio char **argv
Publicado por: AlbertoBSD en 21 Junio 2016, 22:44 pm
Si necesitas memoria dinamica para en tiempo de ejecucion ir asignando espacio para una cantidad srbitraria de datos.

Depende de como leas los datos si vas a leer todos los datos en una sola linea podriar usar strtok para separarlos. Y sobre el arreglo puede ir reservando de uno e  uno o si ya sabes cuantos datos son reservar todo desde el principio

En este video use strtok para leer enteros separados por comas.

b-rnszAiQgc

Aun que ahi no los guardaba en arreglos el ejemplo te puede servir.

Y en este otro video cerca del final leo una cantidad arbitraria de elementos random que si guardo en arreglo dinamico.

BLrJnp1x--w

Espero y te sean de utilidad.

Saludos.


Título: Re: crear mi propio char **argv
Publicado por: fafafa01 en 21 Junio 2016, 23:01 pm
gracias, otra consulta con la función malloc se crea una lista enlazada ¿no?, si es así, como recorro la memoria ¿como lo haría con un arreglo?


Título: Re: crear mi propio char **argv
Publicado por: AlbertoBSD en 22 Junio 2016, 01:14 am
Hola malloc te reserva memoria y es pata el uso que le quieras dar.
Quieres un arreglo de 10 enteros?

Código
  1. int *lista = malloc(10* sizeof(int)); //10 elementos de tamaño int
  2. lista[0] = 10000;
  3. lista[5] = 2;
  4. //etc...

Quieres un arreglo de N enteros

Código
  1. int N = rand() % 1000000;
  2. int *elementos = malloc(N* sizeof(int)); //N Elementos de tamaño int
  3. elementos[0] = 10000;
  4. elementos[5] = 2;
  5. //etc...

Saludos