<div>Hola a todos,</div>
<div>antes de nada agradezco las respuestas desinteresadas que me dieron a una pregunta anterior y que me a ido muy bien.</div>
<div>Bueno, mi pregunta ahora es respecto como se las apaña el ordenador para almacenar todos lo que le digo dado que me he creado el programa de abajo trabaja con una matriz de 12000*12000 floats que viene a ser más de un giga de información y mi ordenador tiene menos que eso así que mi pregunta es, ¿Como es eso posible que este programa funcione (pq funciona)?.
</div>
<div> </div>
<div>El programa únicamente crea la matriz, le asigna los valores 1.0, luego se los cambia por 2.0 y también da el tamaño de la matriz y da 6 valores para confirmar que realmete cambia el valor 1.0 por 2.0.</div>
<div>
<p>#include <iostream><br>using namespace std;</p>
<p>void funcion(double **B, int n, int m); </p>
<p>int main(){   <br>   int i,n,m;<br>   double **A;<br>   <br>   n=13000; m=13000;<br>   A=new double *[n];<br>   for (i=0;i<n;i++){A[i]=new double [m];}</p>
<p>   for(int i=0;i<n;i++){<br>   for(int j=0;j<m;j++){<br>           A[i][j]=1.0;<br>           }<br>           }<br>                  <br>   funcion(A,n,m); <br>   printf("A =  %f  %f  %f \n",A[0][0], A[0][1], A[0][2]);
<br>   printf("     %f  %f  %f \n",A[n-1][m-3], A[n-1][m-2], A[n-1][m-1]);<br>   <br>   cout<<"Tamaño de A = "<<endl;<br>   cout<<"n*m(ints)*8(bytes)+n(punt)*8(punt int)+8(punt de punt int) = "<<8*(1+n+n*m)<<" bytes\n";
<br>    <br>   for (i=0;i<n;i++){delete[] A[i];}<br>   delete[] A;<br>   getchar();<br>}<br> <br>void funcion(double **B, int n, int m){<br>     for(int i=0;i<n;i++){<br>     for(int j=0;j<m;j++){<br>                  B[i][j]=
2.0;<br>                  }<br>                  }<br>}</p>
<p> </p>
<p>Un saludo y gracias.</p></div>