SoloCodigo

Programación General => C/C++ => Visual C++ => Mensaje iniciado por: Melissavir en Lunes 5 de Octubre de 2009, 21:55

Título: redimensionar una matriz en C
Publicado por: Melissavir en Lunes 5 de Octubre de 2009, 21:55
hola

Necesito la ayuda de Uds.Tengo que hacer una funcion que sea redimensionar una matriz multidimensional ya existente a nuevas dimensiones que me pasen por parámetros en lenguaje C.Y la verdad que he intentado pero en C me ha sido un poco dificil. Pudieran darme sus ideas?

Graciass
Título: Re: redimensionar una matriz en C
Publicado por: killrazor en Martes 6 de Octubre de 2009, 16:17
No soy muy experto en C, aunque en C++ yo usaria STL.  En C, lo malo (y lo bueno) es que cada dimension puede ser diferente segun la fila (en C++ tambien). Es decir, una matriz de dos dimensiones de enteros puedes pensarla como un array de arrays. Asi el primer array de la segunda dimension puede tener 5 posiciones y la otra puede tener 1000 posiciones.
Tienes un numero maximo de dimensiones para el algoritmo? Cada fila de una matriz ha de tener las mismas posiciones? Es decir, esto, para tu funcion, es legal o ilegal?
Código: C++
  1.  
  2. int* a = new int*[2]; //array de dos punteros
  3. a[0] = new int[100];
  4. a[1] = new int[3];
  5.  

O solo es legal que todos los elementos de la misma dimension sean iguales?
Código: C++
  1. #define MAX 2
  2. int* a = new int*[MAX]; //array de dos punteros
  3. for(int i=0; i < MAX; i++){
  4.     a[i] = new int[b];
  5. }
  6.