Hola Steven,<div><br></div><div>Me ha quedado todo clarísimo! Muchas gracias por tu ayuda :)</div><div><br></div><div>Un saludo,<br><br><div class="gmail_quote">El 14 de junio de 2010 05:16, Steven Davidson <span dir="ltr"><<a href="mailto:srd4121@njit.edu">srd4121@njit.edu</a>></span> escribió:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hola Javier,<div class="im"><br>
<br>
Javier Cancio del Busto wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hola,<br>
<br>
Siguiendo el tutorial de la web, he visto dos ejemplos que no me<br>
quedan muy claros... dicen:<br>
<br>
¿Cuantos elementos contiene cada uno de los siguientes arrays?<br>
<br>
1) int y[][3] = {3,6,7,2,3,1,2,4};<br>
<br>
2)char z[][2][10] = {"hola", "adios", "", "saludo", "chao"};<br>
<br>
<br>
No entiendo cómo se calculan los elementos en estos dos casos... :S<br>
<br>
</blockquote>
<br></div>
El compilador puede inducir la cantidad de elementos porque existe una inicialización con los valores entre las llaves en la definición de los arrays.<br>
<br>
1) 'y' es un array de X elementos, los cuales son 3 arrays de tipo 'int'. Mirando los elementos y conociendo los tipos de cada uno, podemos determinar el valor de X - la cantidad de arrays.<br>
<br>
Como cada elemento trata de 3 arrays de enteros, entonces cada grupo de 3 enteros es un elemento. Es decir,<br>
<br>
y[0] := {3,6,7}<br>
y[1] := {2,3,1}<br>
y[2] := {2,4,0}<br>
<br>
Por lo tanto, 'y' es un array de 3 elementos, los cuales son 3 arrays de tipo 'int'. Conceptualmente, tenemos una tabla o matriz de 3x3 de enteros. Podríamos reescribir la definición de este array como:<br>


<br>
int y[3][3] = {3,6,7,2,3,1,2,4};<br>
<br>
Por último, recuerda que si no hay suficientes elementos en la inicialización para la cantidad de elementos en la variable, entonces se rellenan los demás con 0 (cero) del tipo adecuado. Por esta razón, 'y[2]' contendrá el array de los tres elementos: 2, 4, y 0.<br>


<br>
2) 'z' es un array de N elementos, los cuales son 2 arrays, cuyos elementos son 10 arrays de tipo 'int'. Aplicamos el mismo razonamiento que en 1). Ten presente que una cadena literal de caracteres se representa como un array de tipo 'char' con un carácter nulo al final. Por lo tanto, cada cadena literal es otro array.<br>


<br>
Al final, obtenemos una matriz tridimensional de Nx2x10 de caracteres. Esto es:<br>
<br>
z[0] := { "hola\0\0\0\0\0\0", "adios\0\0\0\0\0\0" }<br>
z[1] := { "\0\0\0\0\0\0\0\0\0\0", "saludo\0\0\0\0" }<br>
z[2] := { "ciao\0\0\0\0\0\0\0", "\0\0\0\0\0\0\0\0\0\0" }<br>
<br>
Nuevamente, tenemos 3 elementos para la primera "dimensión".<br>
<br>
Fíjate que las cadenas deben caber en el array de 10 'char'. Como se trata de una inicialización, se rellenan con ceros (de tipo 'char') los demás elementos para completar el array.<br>
<br>
<br>
Espero haber aclarado la duda.<br>
<br>
Steven<br>
<br>
<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>======================<br>  Javier Cancio del Busto<br>======================<br>      <a href="http://sepho.es/">http://sepho.es/</a><br>======================<br>
</div>