[C con Clase] Tamanyo de una matriz externa dentro de una funcion

David fire ddfire en gmail.com
Vie Nov 28 00:43:41 CET 2008


si es tan importante el tamaño hace una clase que tenga como uno de sus
atributos el tamaño, con las funciones correspondientes para ir llevando la
cuenta.
David

El 27 de noviembre de 2008 19:10, <srd4121 en njit.edu> escribió:

> Hola Narcis,
>
> Quoting Narcis Garcia - GiLUG <informatica en actiu.net>:
>
> > Entiendo entonces que para pasar matrices a una función de momento no
> > hay más remedio que añadir un parámetro con su tamaño, debido a que este
> > dato (o su referencia) se pierde por el camino.
> >
>
> Bueno, no es que se pierda, es que sencillamente no pertenece al tipo de
> dato
> que se pasa a la función. Internamente, un parámetro declarado de un tipo
> de
> array realmente es un puntero. Por ejemplo,
>
> void func( int lista[] );
>
> es equivalente a,
>
> void func( int *lista );
>
> Asimismo,
>
> void func2( int matriz[][10] );
>
> es equivalente a,
>
> void func2( int (*matriz)[10] );
>
> Al final, se trata de un puntero. Esto forma parte del diseño de ambos
> lenguajes
> de C y C++.
>
> > C++ debe almacenar en algun lugar lo que ocupa una matriz. ¿Este dato
> > sólo es accesible mediante la precaria función sizeof() ? ¿Cómo lo hace
> > sizeof() para encontrar el tamaño de los datos de una matriz?
> >
>
> En primer lugar, 'sizeof' no es una función, sino un operador. En cuanto a
> la
> determinación del tamaño del array, efectivamente el compilador conoce su
> tamaño. Por lo tanto, 'sizeof' también lo conoce. Sin embargo, con la
> explicación anterior, 'sizeof' no conoce el array original, sino el puntero
> que
> es el parámetro local. En el ejemplo anterior, 'sizeof' se basa en el
> parámetro
> 'lista' o 'matriz', según la versión que elijas.
>
>
> Espero haber aclarado el tema.
>
> Steven
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
(\__/)
(='.'=)This is Bunny. Copy and paste bunny into your
(")_(")signature to help him gain world domination.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20081127/182a825b/attachment.html>


Más información sobre la lista de distribución Cconclase