FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Definir una matriz sin saber el rango
Hola! pregunta sencilla pero no le veo la vuelta.
Tengo un programa en C, y tengo dos variables x e y que se generan cuando el programa esta corriendo. Quiero definir una matriz con esas variables, por ejemplo int mat[x][y]; no me deja el compilador, hay alguna manera? graciaas |
#2
|
||||
|
||||
Hola kirios.
Si, te pongo un ejemplo: Código:
... int **mat, col, row; col = StrToInt(Edit1->Text); row = StrToInt(Edit2->Text); mat = new int *[row]; for (int i= 0; i < row; i++) mat[i] = new int[col]; ... for(i=0; i < col; i++) delete [] mat[i]; delete [] mat;
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 27-05-2012 a las 05:52:56. |
#3
|
||||
|
||||
Hola.
Me olvidé de comentarte... Otra forma en que podes implementarlo, es utilizando el método de órden de mayor fila (row major order) que es como almacenan la matriz en memoria C y C++. Para obtener el offset de un elemento, hay que realizar: fila * numero_columnas + columna. Un ejemplo: Código:
#include<stdlib.h> #include<stdio.h> #include<conio.h> int main(int argc, char* argv[]) { char *mat; int maxrow, maxcol, row, col; /* Ingresar dimensión */ printf("Filas: "); scanf("%2d", &maxrow); printf("\nColumnas: "); scanf("%2d", &maxcol); /* Crear */ mat = new char[maxrow * maxcol]; /* Cargar la matriz */ randomize(); for(int f=0; f < maxrow; f++) for(int c=0; c < maxcol; c++) mat[f * maxcol + c] = random(27)+65; /* Mostrar la matriz */ for(int f=0; f < maxrow; f++) { for(int c=0; c < maxcol; c++) printf("%3c", mat[f * maxcol + c]); printf("\n"); } /* Posicionar y mostrar el elemento */ printf("Fila: "); scanf("%2d", &row); printf("\nColumna: "); scanf("%2d", &col); printf("%c",mat[row * maxcol + col]); getch(); /* liberar */ delete [] mat; return 0; } Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 28-05-2012 a las 05:54:29. Razón: corrección ortográfica |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿saber si una fecha o mas estan dentro de un rango de fechas? | JXJ | Firebird e Interbase | 17 | 25-08-2010 23:55:43 |
Como saber cuando son sabados,domingos o festivos en un rango de fechas | ingabraham | Varios | 1 | 04-02-2010 19:04:27 |
Definir impresora | Carliviris | Varios | 6 | 11-01-2008 03:12:17 |
Problemas al definir UDF (Funciones en una DLL) | pcicom | Firebird e Interbase | 2 | 21-06-2006 05:49:15 |
Como saber si la impresora es de Matriz de Punto | teletranx | Impresión | 4 | 11-05-2004 21:27:01 |
|