Título: especificar dimensiones matriz Publicado por: Fer995 en 19 Noviembre 2010, 04:23 am hola!!
quiesiera saber como puedo pedir al usuario que introduzca un numero y a partir de el crear una matriz cuadrada de las dimensiones que le ha indicado el usuario por ejemplo: scanf("%d", &num); int matriz[num][num]; esto es lo que quiero hacer... pero no se como hacerlo, pense en usar punteros.. pero no se me ocurre como hacerlo gracias por la ayuda Título: Re: especificar dimensiones matriz Publicado por: do-while en 19 Noviembre 2010, 06:21 am ¡Buenas!
Estudia sobre asignacion dinamica de memoria. ¡Saludos! Título: Re: especificar dimensiones matriz Publicado por: dooque en 19 Noviembre 2010, 14:25 pm Hola! como dice do-while vas a tener que usar memoria "dinamca", i.e. usar las funciones malloc() y calloc() y la mas importante free().
Aca te dejo las paginas del manual de las tres: http://www.manpagez.com/man/3/malloc/ Basicamente "void * malloc(size_t size)" te davuelve un arreglo (buffer) de la cantidad de memoria que vos le pidas, "void * calloc(size_t count, size_t size)" es casi lo mismo con la diferencia que te devuelve un arreglo o buffer con la cantidad de elementos del tamaño que vos le digas, y ademas te devuelve la memoria inicializada a cero, cosa que malloc no hace, por ejemplo: Código: int *buffer = NULL; te devuelve un arreglo con 100 enteros y la memoria sin inicializar. Código: int *buffer = NULL; esto tambien te devuelve un arreglo de 100 enteros pero inicializados a cero. Y la parte mas importante del uso de memoria dinamica es el free(), lo que hace es liberar la memoria que asignaste con malloc() o calloc(), por que si no, vas a tener una fuga de memoria o como es mas conocido "un memory leak" (http://es.wikipedia.org/wiki/Fuga_de_memoria), por ejemplo: Código: char *buffer = malloc(100*sizeof(char)); /* Esto es qeuivalente a char arreglo[100]; */ COROLARIO: No hay que olvidarse de liberar con free() cada puntero asgnado con malloc() o calloc(), i.e. deberias tener en tu codo la misma cantidad de llamas: #free() = #malloc() + #calloc(). Si bien esto no simpre anda es un buen ejersicio para acostumbrace a liberar la memoria. Saludos! Título: Re: especificar dimensiones matriz Publicado por: Fer995 en 19 Noviembre 2010, 15:31 pm gracias por las respuestas son muy buenas!
veo que hay mucha teoria detras de todo esto... tendre que empollarmela un buen rato ejeje graias por todo |