Jump to content
Fórum Script Brasil
  • 0

Vetores e Matrizes muito grandes


Jean.Phelippe

Question

Fala galera, sou novato na área, queria saber como posso contornar um problema de vetores e matrizes double em C

Eu tenho um programa que tem que ler e armazenar ~2100 numeros double, alem de utilizar vetores int da mesma ordem de grandeza

porém meu programa da falha de segmentação ou trava se eu coloco vetores maiores que 350 posições

Existe algum meio de trabalhar com vetores e matrizes de tamanho grandes(2000+) em C?

Abraços

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Bom dia jean

bem teoricamente vetores são infinitos mais sabemos q n e bem asim por que memoria não e infinita

você tem certeza a maquina que esta rodando o programa tem memoria o suficiente pra isso?

Link to comment
Share on other sites

  • 0

Bom dia Miguel

Meu Pc tem 2Gb de memoria RAM acho que não é problema, fora que este programa é um exercicio de faculdade proposto, funcionando muito bem pra uma entrada de 130 posições, mas para uma de 2060 ele trava, acho que tenho que usar alocação de memoria, pelo que estou pesquisando mas não faço idéia de como fazer...

Eu defini uma constante para dar o numero de posições dos vetores, se eu coloco 300 roda muito bem mas se eu aumento pra 400 ele trava, muito estranho não?

Link to comment
Share on other sites

  • 0

Ah entendi o seu problema!

nunca tive um problema relacionado a isso

vo fazer alguns testes e analises daqui a pouco te falo as observações

:D

Link to comment
Share on other sites

  • 0

Bem Jean vejamos eu fiz um codigo simplis para testar

eu uso a IDE Code blocks com o copilator minGW

eu fiz um vetor doble com 5000 posições e preechi todos eles e madei mostralos

n deu nein um erro e o tempo de execução foi inferior a 1 segundo

talvez e um problema com seu codigo poste o quem sabe posso ajuda-lo :D

Link to comment
Share on other sites

  • 0

Miguel valeu a ajuda cara, deve ser algo que eu fiz mesmo então, porque ele da um erro 0xC0000005 algo relacionado com falha de segmentação estou usando o ubuntu gdb pra tentar localizar o erro

Abraço

---EDIT-----------

Surgiu um novo problema, fazendo umas vistoria dentro do programa noto que ao entrar numa função, esta chama uma outra, até ai beleza só que após realizar a função chamada ela altera os valores de algumas variáveis que não fazem parte da função: por exemplo

Função1(int n, int m, double A)
{....
/*aqui n = 10 e m = 20 por exemplo*/
Função2(int n, int m....); /*Função2 em nenhum momento altera n ou m apenas usa nos for()*/
/*aqui n e m mudam totalmente de valores*/
}
----------------------------------------------------------------- EDIT2: SOLUÇÃO DO PROBLEMA: Porque estava dando falha de segmentação: Eu declarava um vetor de 200 casas e na função definia a entrada de um vetor de 100 casas, logo ele "escapava" da memoria que eu defini.Ex:
#define MAX1 1000
#define MAX2 500

Função1(int Vetor1 [MAX2]...) /** Erro ai, deveria ser MAX1, ele esta assumindo que eu vou colocar um vetor de 500 posições **/
{ ...
 /*operações com Vetor1*/
}

int main(){

int Vetor[MAX1];

Função1(Vetor...); /*Jogo na função um vetor de 1000 posições*/

...}

----O tópico pode ser trancado pela moderação...----

Edited by Jean.Phelippe
Link to comment
Share on other sites

  • 0

Só uma dica: Ao passar vetores como parâmetros de uma função, não há a necessidade de colocar o número de posições.

Passe como um ponteiro, ou com os colchetes vazios. Isso evita esse tipo de erro.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...