Jean.Phelippe Postado Novembro 10, 2011 Denunciar Share Postado Novembro 10, 2011 Fala galera, sou novato na área, queria saber como posso contornar um problema de vetores e matrizes double em CEu tenho um programa que tem que ler e armazenar ~2100 numeros double, alem de utilizar vetores int da mesma ordem de grandezaporém meu programa da falha de segmentação ou trava se eu coloco vetores maiores que 350 posiçõesExiste algum meio de trabalhar com vetores e matrizes de tamanho grandes(2000+) em C?Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 _Miguel_ Postado Novembro 10, 2011 Denunciar Share Postado Novembro 10, 2011 Bom dia jeanbem teoricamente vetores são infinitos mais sabemos q n e bem asim por que memoria não e infinitavocê tem certeza a maquina que esta rodando o programa tem memoria o suficiente pra isso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jean.Phelippe Postado Novembro 10, 2011 Autor Denunciar Share Postado Novembro 10, 2011 Bom dia MiguelMeu 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 _Miguel_ Postado Novembro 10, 2011 Denunciar Share Postado Novembro 10, 2011 Ah entendi o seu problema!nunca tive um problema relacionado a issovo fazer alguns testes e analises daqui a pouco te falo as observações:D Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 _Miguel_ Postado Novembro 10, 2011 Denunciar Share Postado Novembro 10, 2011 Bem Jean vejamos eu fiz um codigo simplis para testareu uso a IDE Code blocks com o copilator minGWeu fiz um vetor doble com 5000 posições e preechi todos eles e madei mostralosn deu nein um erro e o tempo de execução foi inferior a 1 segundotalvez e um problema com seu codigo poste o quem sabe posso ajuda-lo :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jean.Phelippe Postado Novembro 10, 2011 Autor Denunciar Share Postado Novembro 10, 2011 (editado) 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 erroAbraç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 Novembro 10, 2011 por Jean.Phelippe Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mJi Postado Novembro 11, 2011 Denunciar Share Postado Novembro 11, 2011 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Jean.Phelippe
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
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.