SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: drazik en Miércoles 14 de Abril de 2004, 19:56

Título: Matrices
Publicado por: drazik en Miércoles 14 de Abril de 2004, 19:56
Hola, necesito saber como se declaran y se reserva memoria dinamicamente para matrices de N filas por M columnas, introducidas por teclado, a ser posible que queden en direcciones consecutivas de memoria. Las funciones malloc y calloc no las domino muy bien si me podrian ayudar se lo agradeceria. :)
Título: Re: Matrices
Publicado por: Ruben3d en Miércoles 14 de Abril de 2004, 20:08
Hola.

Para declarar matrices del tipo tipo has de hacerlo así:

Código: Text
  1.  
  2. int N = 10; // Altura
  3. int M = 15; // Anchura
  4. tipo *matriz = (tipo*) malloc(N*M*sizeof(tipo));
  5.  
  6.  

Luego, para direccionar un elemento en posición i,j se hace así (teniendo en cuenta que i se desplaza en vertical y j en horizontal):

Código: Text
  1.  
  2. matriz[j+i*M]
  3.  
  4.  

Un saludo.

Ruben3d
Título: Re: Matrices
Publicado por: JuanK en Miércoles 14 de Abril de 2004, 20:11
bueno Ruben asi creas un vector no una matriz...
Título: Re: Matrices
Publicado por: Ruben3d en Miércoles 14 de Abril de 2004, 20:19
Cita de: "drazik"
a ser posible que queden en direcciones consecutivas de memoria

Citar
asi creas un vector no una matriz...

Cierto, pero se comporta como una matriz y cumple el requisito que he citado más arriba. Además, es más sencillo de entender para alguien que está empezando que hacer un vector de punteros a vectores para crear la matriz.

Un saludo.

Ruben3d
Título: Re: Matrices
Publicado por: JuanK en Miércoles 14 de Abril de 2004, 20:24
umm
cierto es  :P...
sorry  :whistling:
Título: Re: Matrices
Publicado por: drazik en Jueves 15 de Abril de 2004, 11:05
Muchas gracias a ambos, por la ayuda. Ya lo probare a ver que tal.  B)