Seguinte, estou criando um programa em C que analisa dados financeiros de negocios da bolsa.
Com 2 anos de dados, tenho aqui, no meu caso, 300 mil linhas de um arquivo, e gostaria de armazena-las em 3 vetores (cada linha tem 3 colunas, por isso 3 vetores)
Pra ter uma folga, no caso deu precisar de 2 anos e meio ou 3 anos, resolvi declarar meus vetores com 500mil posições, assim:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define NMAX 500000
int main()
{
int vol[NMAX];
double preço[NMAX], porcento[NMAX];
Ao compilar, o programa compila, numa boa, e depois ao rodar o programa, tenho uma falha! da aquele classico "o programa 'teste.exe' parou de funcionar".
Reduzindo o valor de NMAX, eu cheguei num momento com a seguinte situação:
Se eu criasse 1 vetor INT, com 300mil posições, não dava problema
1 vetor com 350mil posições, dava problema
2 vetores, cada um com 150 mil posições, não dava problema
3 vetores, cada um com 100 mil posições, não dava problema
3 vetores, cada um com 100 mil posições e 1 vetor com 50 mil posições, dava problema!
Em resumo, meu programa estava com dificuldade de alocar uma quantidade muito grande de posições para os vetores
(quando eu utilizo float ou double no lugar de int, o "NMAX" maximo que eu poderia usar, sem dar problemas, era evidentemente menor, uma vez que floats e doubles ocupam mais espacoes do que ints!)
Não sei se isso deveria acontecer, eu estou com memória disponível de 40Gb no meu computador, então acho pouco provável de ser esse o problema. (não sei nem se isso poderia ter a ver com o HD)
Talvez isso seja alguma configuração do compilador, ou algo a ver com a minha memória RAM, não sei.
Precisaria rodar o programa em algum outro computador, pra ver o que aconteceria!
Mas, a principio, alguém tem noção de qual é o problema e qual seria a solução?
Pergunta
Felipe Amadio
Seguinte, estou criando um programa em C que analisa dados financeiros de negocios da bolsa.
Com 2 anos de dados, tenho aqui, no meu caso, 300 mil linhas de um arquivo, e gostaria de armazena-las em 3 vetores (cada linha tem 3 colunas, por isso 3 vetores)
Pra ter uma folga, no caso deu precisar de 2 anos e meio ou 3 anos, resolvi declarar meus vetores com 500mil posições, assim:
Ao compilar, o programa compila, numa boa, e depois ao rodar o programa, tenho uma falha! da aquele classico "o programa 'teste.exe' parou de funcionar".
Reduzindo o valor de NMAX, eu cheguei num momento com a seguinte situação:
Se eu criasse 1 vetor INT, com 300mil posições, não dava problema
1 vetor com 350mil posições, dava problema
2 vetores, cada um com 150 mil posições, não dava problema
3 vetores, cada um com 100 mil posições, não dava problema
3 vetores, cada um com 100 mil posições e 1 vetor com 50 mil posições, dava problema!
Em resumo, meu programa estava com dificuldade de alocar uma quantidade muito grande de posições para os vetores
(quando eu utilizo float ou double no lugar de int, o "NMAX" maximo que eu poderia usar, sem dar problemas, era evidentemente menor, uma vez que floats e doubles ocupam mais espacoes do que ints!)
Não sei se isso deveria acontecer, eu estou com memória disponível de 40Gb no meu computador, então acho pouco provável de ser esse o problema. (não sei nem se isso poderia ter a ver com o HD)
Talvez isso seja alguma configuração do compilador, ou algo a ver com a minha memória RAM, não sei.
Precisaria rodar o programa em algum outro computador, pra ver o que aconteceria!
Mas, a principio, alguém tem noção de qual é o problema e qual seria a solução?
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.