Título: arreglos bidimensionales y funciones Publicado por: m@o_614 en 13 Julio 2013, 00:32 am Saludos
Tengo una duda de como pasar un arreglo bidimensional a una funcion cualquiera, si tengo una matriz que se llama multi[filas][columnas] y la quiero pasar a una funcion con la siguiente llamada: set_value(multi); por que en la funcion tengo que dejar el corchete[] de las filas vacio y el de las columnas con su respectivo tamanio es algo que no termino de entender y queria saber si alguien me lo podia explicar: void set_value(int m_arreglo[][COLUMNAS]) { //Cuerpo de la funcion } de antemano gracias Título: Re: arreglos bidimensionales y funciones Publicado por: rir3760 en 13 Julio 2013, 02:44 am ¿C o C++?
---- En el caso de C cuando una función se declara en cualquiera de las dos formas: Código En realidad se procesa así: Código
Y cuando se llama a la función pasando como argumento el nombre de un array este se sustituye por la dirección en memoria de su primer elemento. Por ello no es necesario (ni se recomienda) indicar el numero de elementos del array (no tiene caso). ---- Lo que tu llamas "matriz" solo es un array y por ende no debes indicar el numero de elementos (filas), debes indicar el numero de columnas porque ello es parte del tipo de cada elemento del array. Para explicarlo mejor un ejemplo en C utilizando alias: Código
Un saludo Título: Re: arreglos bidimensionales y funciones Publicado por: m@o_614 en 13 Julio 2013, 05:42 am muchas gracias por tu respuesta, una ultima duda, por que utilizas el typedef???
Título: Re: arreglos bidimensionales y funciones Publicado por: eferion en 16 Julio 2013, 22:33 pm typedef te permite asignar un alias... sirve para mejorar la legibilidad del código.
Código
Con esta línea defines un tipo nuevo "uchar" que se corresponde con un "unsigned char"... pero más corto y legible. Hacerlo con estructuras te permite omitir la palabra "struct" cada vez que quieras definir una variable o puntero a una estructura. |