Ola' Rodrigo,


Me desculpe a pressa, mas o final de ano esta' MUITO corrido. Utilizando alocacao dinamica voce pode utilizar TODA a memoria LIVRE da sua maquina para armazenar o seu vetor. Para saber quanto voce tem de memoria livre, utilize o comando free. Um exemplo segue abaixo.



Este e' o mapa de memoria antes de se rodar o programa:


total used free shared buffers cached
Mem: 642156 257652 384504 0 54432 84676
-/+ buffers/cache: 118544 523612
Swap: 257000 4584 252416



Este e' o mapa de memoria durante a execucao do programa.


total used free shared buffers cached
Mem: 642156 637684 4472 0 54908 73640
-/+ buffers/cache: 509136 133020
Swap: 257000 4584 252416


Repare nas colunas used e free. Uma versao mais informativa do programa segue abaixo.


#include<stdio.h>
#include<stdlib.h>


#define tam 100000000

int main(void)
{
unsigned int i;
int * vetor;


if( (vetor = (int *) malloc ( tam * sizeof(int) )) != NULL )
{
for(i=0;i<tam;i++) *(vetor + i) = 1;
}
else
{
printf("\n\n Nao foi possivel alocar memoria dinamicamente!!!\n\n");
printf(" Causa provavel: Falta de memoria!!!\n\n");
printf(" Reduza o tamanho da memoria alocada e utilize o comando free\n\n");
printf(" para monitorar a ocupacao de memoria.\n\n");
}


getchar();

return(0);
}



Qualquer duvida, me mande um e-mail. Um grande abraco,


Mazolli.

Departamento de Fisica
UFRJ
_______________________________________________
slack-users mailing list
[EMAIL PROTECTED]
http://www.linuxmag.com.br/mailman/listinfo/slack-users

Responder a