Título: Ayuda con tablas bidimensionales! Publicado por: lachusta en 15 Septiembre 2011, 01:42 am Hola, mi duda surge mientras hacia un examen de programación. El caso es que el ejercicio pedía calcular el determinante de una matriz cuadrada de orden DIM (tabla bidimensional declarada como: int matriz [DIM][DIM] ). DIM es una constante simbólica.
La matriz se pasaba a una función determinante ejemplo : printf("Determinante de matriz: %d\n", determinante(matriz)) En la declaración de la funcion determinante que sería lo correcto; ¿int determinante (int matriz[ ][DIM] ); o int determinante (int * matriz); sabiendo que una tabla bidimensional se almacena en memoria por filas y usando notación de punteros con 2 indices? ¿Por qué? Graciass! espero respuesta :) Título: Re: Ayuda con tablas bidimensionales! Publicado por: LearningSpanishProgrammer en 15 Septiembre 2011, 02:14 am Se quieres usar una matriz en el 'stack' y usar el metodo para diferentes tamaños, entonces tiene que hacer asi:
Código: void function(int * m, int lineas, size_t columnas) en el caso de que se puede usar la asignación dinámica, enton puede leer esto: http://foro.elhacker.net/programacion_cc/duda_con_arreglo_bidimensional_dinamico_en_ide_devc-t337905.0.html;msg1658904#msg1658904 Finalmente, se el tamaño de el matriz es constante em tiempo de compilación, entonces se puede: Código: void function(int m[][DIM]) Código: void function(int m[DIM][DIM]) Título: Re: Ayuda con tablas bidimensionales! Publicado por: rir3760 en 15 Septiembre 2011, 14:52 pm Cuando se declara una funcion en la forma:
Código
En realidad se procesa como: Código
Es por ello que indicar el numero de elementos en el array (el parametro "a") no es necesario. Un saludo |