int(*matriz)[8]=new int [8][10];
Citarint(*matriz)[8]=new int [8][10];es una reserva dinamica de vectores estaticos, no una matriz dinamica bidimensional. Pero, aunque yo nunca usaria esto, puede valer.
Asi se redimenciona una matriz en c:Primero hay que crear un apuntador de apuntadores, char **matriz;una vez hecho esto hay que asignar la cantidad de posiciones que deseamos en x, para esto s necesario reservar memoria del tamaño igual a tantas posiciones en x querramos.como lo que se pretende es 'colgar' en cada posicion x un array del tamaño de y entonces reservamos la memoria para almacenar char *, es decir para almacenar el array.Código: Text matriz = (char **) malloc( sizeof(char *)*xpos);//siempre conviene inicializar.memset(matriz, '\0', sizeof(char *)*xpos); ahora ya tenemos listo el eje de las x y procedemos a 'colgarle' a cada apuntador del array otro array , es decir a cada matriz[xpos] le dejamos apuntando aun arreglo del tamaño de ypos asi:Código: Text for(x=0, x<xpos;x++){ matriz[x] = (char *) malloc( sizeof(char) * ypos); memset(matriz[x], '\0', sizeof(char) * ypos);} Ahora se puede accesar a la variable de esta manera:Código: Text for(y=0;y<ypos;y++){ for(x=0;x<xpos;x++) { matriz[x][y]='\0'; }} Con esto es suficiente, es bueno tener en cuenta que hacer este tipo de cosas baja el renfimeinto de la aplicacion, ya que declarar un array de esta forma:char mt[20][30];deja la variable alojada en los registros del procesador es decir en el stack lo cual hace que su acceso sea muy rapido , mientras que al construir espacios de memorioa con malloc lo que se hace es resevar una porcion del heap para la informacion, de esta manera el programa hace doble trabajo ya que cada vez que desee operar sobre estos datos, llevara porciones de infromacion desde el heap hata los registros del procesador.Sin embargo es algo muy util ya que realmente durante años crei que era imposible de hacer (eso me habian dicho mis profesores) y hoy en dia despues de muchos intentos fallidos y de muchos intentos desistidos en años atras... lo he logrado y quiero compartirlo con ustedes y con todas las personas que lo puedan necesitar.
CitarCon esto es suficiente, es bueno tener en cuenta que hacer este tipo de cosas baja el renfimeinto de la aplicacion, ya que declarar un array de esta forma:char mt[20][30];deja la variable alojada en los registros del procesador es decir en el stack lo cual hace que su acceso sea muy rapido , mientras que al construir espacios de memorioa con malloc lo que se hace es resevar una porcion del heap para la informacion, de esta manera el programa hace doble trabajo ya que cada vez que desee operar sobre estos datos, llevara porciones de infromacion desde el heap hata los registros del procesador.
Con esto es suficiente, es bueno tener en cuenta que hacer este tipo de cosas baja el renfimeinto de la aplicacion, ya que declarar un array de esta forma:char mt[20][30];deja la variable alojada en los registros del procesador es decir en el stack lo cual hace que su acceso sea muy rapido , mientras que al construir espacios de memorioa con malloc lo que se hace es resevar una porcion del heap para la informacion, de esta manera el programa hace doble trabajo ya que cada vez que desee operar sobre estos datos, llevara porciones de infromacion desde el heap hata los registros del procesador.