06.05.2013 Views

CONTENIDO DE LA LECCIÓN 18

CONTENIDO DE LA LECCIÓN 18

CONTENIDO DE LA LECCIÓN 18

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!