Matrices Dinámicas Rafael Palacios 2005 Matrices dinámicas /* Programa asignar una matriz dinámica */ #include <stdio.h> int main(void) { int f; /* número de filas */ int c; /* número de columnas */ double **mat; /* puntero de puntero */ int i; /* contador */ /* obtengo f y c */ f=3; c=7; /* Asigno memoria (falta el control de errores)*/ mat=(double **)calloc(f,sizeof(double *)); for(i=0; i<f; i++) { mat[i]=(double *)calloc(c,sizeof(double)); } <...sigue...> Matrices dinámicas /* Programa asignar una matriz dinámica */ #include <stdio.h> int main(void) { int f; /* número de filas */ int c; /* número de columnas */ double **mat; /* puntero de puntero */ int i; /* contador */ /* obtengo f y c */ f=3; c=7; /* Asigno memoria (falta el control de errores)*/ mat=(double **)calloc(f,sizeof(double *)); for(i=0; i<f; i++) { mat[i]=(double *)calloc(c,sizeof(double)); } <...sigue...> f ??? c ??? mat ??? i ??? Matrices dinámicas /* Programa asignar una matriz dinámica */ #include <stdio.h> int main(void) { int f; /* número de filas */ int c; /* número de columnas */ double **mat; /* puntero de puntero */ int i; /* contador */ /* obtengo f y c */ f=3; c=7; /* Asigno memoria (falta el control de errores)*/ mat=(double **)calloc(f,sizeof(double *)); for(i=0; i<f; i++) { mat[i]=(double *)calloc(c,sizeof(double)); } <...sigue...> f c mat i 3 ??? ??? ??? Matrices dinámicas /* Programa asignar una matriz dinámica */ #include <stdio.h> int main(void) { int f; /* número de filas */ int c; /* número de columnas */ double **mat; /* puntero de puntero */ int i; /* contador */ /* obtengo f y c */ f=3; c=7; /* Asigno memoria (falta el control de errores)*/ mat=(double **)calloc(f,sizeof(double *)); for(i=0; i<f; i++) { mat[i]=(double *)calloc(c,sizeof(double)); } <...sigue...> f c mat i 3 7 ??? ??? Matrices dinámicas /* Programa asignar una matriz dinámica */ #include <stdio.h> int main(void) { 3 f 7 c mat 26F3 i ??? int f; /* número de filas */ int c; /* número de columnas */ double **mat; /* puntero de puntero */ int i; /* contador */ /* obtengo f y c */ 26F3 f=3; c=7; /* Asigno memoria (falta el control de errores)*/ mat=(double **)calloc(f,sizeof(double *)); for(i=0; i<f; i++) { mat[i]=(double *)calloc(c,sizeof(double)); } <...sigue...> ? ? ? Matrices dinámicas /* Programa asignar una matriz dinámica */ #include <stdio.h> int main(void) { 3 f 7 c mat 26F3 i 0 int f; /* número de filas */ int c; /* número de columnas */ double **mat; /* puntero de puntero */ int i; /* contador */ /* obtengo f y c */ 26F3 f=3; c=7; /* Asigno memoria (falta el control de errores)*/ mat=(double **)calloc(f,sizeof(double *)); for(i=0; i<f; i++) { mat[i]=(double *)calloc(c,sizeof(double)); } <...sigue...> ? ? ? Matrices dinámicas /* Programa asignar una matriz dinámica */ #include <stdio.h> int main(void) { 3 f 7 c mat 26F3 i 0 int f; /* número de filas */ int c; /* número de columnas */ double **mat; /* puntero de puntero */ int i; /* contador */ /* obtengo f y c */ 26F3 f=3; c=7; /* Asigno memoria (falta el control de errores)*/ mat=(double **)calloc(f,sizeof(double *)); for(i=0; i<f; i++) { mat[i]=(double *)calloc(c,sizeof(double)); } <...sigue...> 3A64 ? ? 3A54 Matrices dinámicas /* Programa asignar una matriz dinámica */ #include <stdio.h> int main(void) { 3 f 7 c mat 26F3 i 1 int f; /* número de filas */ int c; /* número de columnas */ double **mat; /* puntero de puntero */ int i; /* contador */ /* obtengo f y c */ 26F3 f=3; c=7; /* Asigno memoria (falta el control de errores)*/ mat=(double **)calloc(f,sizeof(double *)); for(i=0; i<f; i++) { mat[i]=(double *)calloc(c,sizeof(double)); } <...sigue...> 3A64 ? ? 3A54 Matrices dinámicas /* Programa asignar una matriz dinámica */ #include <stdio.h> int main(void) { 3 f 7 c mat 26F3 i 1 int f; /* número de filas */ int c; /* número de columnas */ double **mat; /* puntero de puntero */ int i; /* contador */ /* obtengo f y c */ 26F3 f=3; c=7; 3A64 3B91 ? 3A54 /* Asigno memoria (falta el control de errores)*/ mat=(double **)calloc(f,sizeof(double *)); for(i=0; i<f; i++) { mat[i]=(double *)calloc(c,sizeof(double)); } <...sigue...> 3B91 Matrices dinámicas /* Programa asignar una matriz dinámica */ #include <stdio.h> int main(void) { 3 f 7 c mat 26F3 i 2 int f; /* número de filas */ int c; /* número de columnas */ double **mat; /* puntero de puntero */ int i; /* contador */ /* obtengo f y c */ 26F3 f=3; c=7; 3A64 3B91 ? 3A54 /* Asigno memoria (falta el control de errores)*/ mat=(double **)calloc(f,sizeof(double *)); for(i=0; i<f; i++) { mat[i]=(double *)calloc(c,sizeof(double)); } <...sigue...> 3B91 Matrices dinámicas /* Programa asignar una matriz dinámica */ #include <stdio.h> int main(void) { 3 f 7 c mat 26F3 i 2 int f; /* número de filas */ int c; /* número de columnas */ double **mat; /* puntero de puntero */ int i; /* contador */ /* obtengo f y c */ 26F3 f=3; c=7; 3A64 3B91 3C68 3A54 /* Asigno memoria (falta el control de errores)*/ mat=(double **)calloc(f,sizeof(double *)); for(i=0; i<f; i++) { mat[i]=(double *)calloc(c,sizeof(double)); } <...sigue...> 3B91 3C68 Utilización 3 f 7 c mat 26F3 i 2 mat[2][5]=34.56; 26F3 3A64 3B91 3C68 3A54 3B91 3C68 Utilización 3 f 7 c mat 26F3 i 2 mat[2][5]=34.56; 26F3 double ** 26F3 3A64 3B91 3C68 3A54 3B91 3C68 Utilización 3 f 7 c mat 26F3 i 2 mat[2][5]=34.56; 26F3 double ** 26F3 3C68 double * 3A64 3B91 3C68 3A54 3B91 3C68 Utilización 3 f 7 c mat 26F3 i 2 mat[2][5]=34.56; 26F3 double ** 26F3 3C68 double * double 3A64 3B91 3C68 3A54 3B91 3C68 34.56 Liberar Memoria for(i=0; i<f; i++) { free( mat[i] ); } free(mat); 3 f 7 c mat 26F3 i 0 26F3 3A64 3B91 3C68 3A54 3B91 3C68 Liberar Memoria for(i=0; i<f; i++) { free( mat[i] ); } free(mat); 3A64 3 f 7 c mat 26F3 i 0 26F3 3A64 3B91 3C68 3A54 3B91 3C68 Liberar Memoria for(i=0; i<f; i++) { free( mat[i] ); } free(mat); 3A64 3 f 7 c mat 26F3 i 0 26F3 3A64 3B91 3C68 3A54 3B91 3C68 Liberar Memoria for(i=0; i<f; i++) { free( mat[i] ); } free(mat); 3B91 3 f 7 c mat 26F3 i 1 26F3 3A64 3B91 3C68 3B91 3C68 Liberar Memoria for(i=0; i<f; i++) { free( mat[i] ); } free(mat); 3B91 3 f 7 c mat 26F3 i 1 26F3 3A64 3B91 3C68 3B91 3C68 Liberar Memoria for(i=0; i<f; i++) { free( mat[i] ); } free(mat); 3C68 3 f 7 c mat 26F3 i 2 26F3 3A64 3B91 3C68 3C68 Liberar Memoria for(i=0; i<f; i++) { free( mat[i] ); } free(mat); 3C68 3 f 7 c mat 26F3 i 2 26F3 3A64 3B91 3C68 3C68 Liberar Memoria for(i=0; i<f; i++) { free( mat[i] ); } free(mat); 3 f 7 c mat 26F3 i 2 26F3 26F3 3A64 3B91 3C68 Liberar Memoria for(i=0; i<f; i++) { free( mat[i] ); } free(mat); 3 f 7 c mat 26F3 i 2 26F3 26F3 3A64 3B91 3C68