CONTENIDO DE LA LECCIÓN 18
CONTENIDO DE LA LECCIÓN 18
CONTENIDO DE LA LECCIÓN 18
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
MIGUEL Á. TOLEDO MARTÍNEZ<br />
• Los arreglos locales que no son estáticos no se inicializarán con ningún valor específico, a<br />
menos que se proporcionen en la definición del arreglo.<br />
ARREGLOS QUE REBASAN LOS 64 KBYTES <strong>DE</strong> MEMORIA<br />
Si un arreglo rebasa los 64 kbytes de longitud, el mismo enviará un mensaje de error<br />
(Array size too large) en tiempo de compilación.<br />
Ejemplo <strong>18</strong>.38<br />
Ejemplo <strong>18</strong>.39<br />
EXAMEN BREVE 38<br />
El siguiente programa, <strong>DE</strong>MG<strong>DE</strong>.CPP, ilustra esta situación.<br />
/* El siguiente programa: <strong>DE</strong>MG<strong>DE</strong>.CPP, no se compila correctamente ya que el<br />
arreglo utiliza mas de 64 kbytes de memoria.<br />
*/<br />
void main(void)<br />
{<br />
char cadena[66000L]; // 66,000 bytes<br />
int valores[33000L]; // 33,000 * 2 = 66,000 bytes<br />
float numeros[17000]; // 17,000 * 4 = 68,000 bytes<br />
}//Fin de main()<br />
El siguiente programa ENORME.CPP, ilustra como resolver esta situación.<br />
/* El siguiente programa: ENORME.CPP crea un arreglo de más de 64 kbytes<br />
de datos de punto flotante.<br />
*/<br />
#include //Para cout y cin<br />
#include //Para halloc()<br />
void main (void)<br />
{<br />
int i;<br />
float huge *valores;<br />
if ((valores = (float huge *) halloc (17000, sizeof(float))) == NULL)<br />
cout