Ir para conteúdo
Fórum Script Brasil
  • 0

Vetores e Matrizes muito grandes


Jean.Phelippe

Pergunta

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 para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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...----

Editado por Jean.Phelippe
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...