crear mi propio char **argv

Iniciado por fafafa01, 21 Junio 2016, 22:31 PM

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

fafafa01

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.

AlbertoBSD

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.

[youtube=640,360]https://www.youtube.com/watch?v=b-rnszAiQgc[/youtube]

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.

[youtube=640,360]https://www.youtube.com/watch?v=BLrJnp1x--w[/youtube]

Espero y te sean de utilidad.

Saludos.
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

fafafa01

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?

AlbertoBSD

Hola malloc te reserva memoria y es pata el uso que le quieras dar.
Quieres un arreglo de 10 enteros?

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


Quieres un arreglo de N enteros

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


Saludos

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW