[C con Clase] tamaño de un array

Julio Tentor jtentor en gmail.com
Mar Abr 21 13:00:23 CEST 2015


Pepe, resulta que el sistema operativo gestiona la memoria, toda la que tu
maquina tenga, en partes; son unos grandes bloques que podemos utilizar en
nuestros programas. Pero cada uno de esos bloques tiene un tamaño máximo y
por supuesto tu arreglo no puede ser más grande que ese tamaño.



Sucede que al lado de uno de esos bloques haya otro del mismo tamaño o
varios bloques desparramados por toda tu memoria, pero como el sistema
operativo no puede manejar más allá de un bloque entonces no te permite
declarar y crear arreglos que necesiten más memoria que la de ese “bloque”.



Vas a tener que leer sobre administración de memoria y utilizar algún
mecanismo que te permita manejar más de un bloque.



Por ejemplo si el subíndice es 0 a 999999 entonces se trata del bloque 0,
si el subíndice es 1000000 a 1999999 vas al bloque 1 y así.



                int nroDeValores = 1000000;

                const int nroDeBloques = 8;



                unsigned long *bloques[nroDeBloques];



                for (int i = 0; i < nroDeBloques; ++i) {



                               bloques[i] = new unsigned long[nroDeValores];

                }



Espero que te sirva.

Saludos.


-- 
Julio Tentor
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20150421/c3fad9f4/attachment.html>


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