jluis Posted December 31, 2012 at 01:49 AM Report #489079 Posted December 31, 2012 at 01:49 AM (edited) boa noites caros programadores, tenho vindo a programar uns "mini" programas, para uma cadeira na universidade estou a fazer um programa para o modelo trepa colinas (para inteligência artificial) e estou com um problema quanto a lever a 2º vez de um ficheiro: main.c s=fopen(nome_fich, "r"); if(!s) { printf("Erro no acesso ao ficheiro dos dados\n"); exit(1); } initdados.c //f passado por parametro na funcao fscanf(s, " %d %d %d", obj, n_rest,v_max); trepa.c //f passado por parametro na funcao for (i=0;i<objs-1;i++) { fscanf(f, " %d", preco[100]); } erro dado no fscanf(f, " %d", preco[100]); Unhandled exception at 0x63EBDE1B (msvcr110d.dll) in trepa colinas.exe: 0xC0000005: Access violation writing location 0xCCCCCCCC. o que me mete confusao no meio de isto tudo é que quanto ele entra no initdados le normalmente, mas quando vai para o trepa ele ja da erro, ja vi o codigo de todas as maneiras mas nada... nao dou com nada... nota: uso o visual studio 2012 Edited December 31, 2012 at 01:58 AM by apocsantos
HappyHippyHippo Posted December 31, 2012 at 09:53 AM Report #489100 Posted December 31, 2012 at 09:53 AM coloca o código todo .... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
pmg Posted December 31, 2012 at 09:53 AM Report #489101 Posted December 31, 2012 at 09:53 AM Talvez fscanf(f, " %d", preco[i]); Se definiste o array preco com 100 elementos, o elemento preco[100] nao existe. Duas notas: (i) o "%d" do scanf ja tem incluido a funcao de ignorar espacos em branco antes do numero. Usando " %d" estas a pedir ao programa para ignorar espacos em branco duas vezes 🙂 (ii) o aspecto normal dum ciclo for e for (i=0; i<limite; i++). No teu programa tens um - 1 que parece ser errado. Verifica isso. What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
jluis Posted January 1, 2013 at 10:09 PM Author Report #489219 Posted January 1, 2013 at 10:09 PM (edited) boa noite... antes de mais queria agradecer a ajuda dada... caro pmg ja tentei as duas notas que me "deixas-te" mas o erro la continua... ja corri varias vezes o debug e a unico factor que muda de é o _file que quando "entra" a primeira vez no ficheiro esta a 3 e depois ao passar para a segunda funçao que pede o ficheiro passa a 4... quanto a isto do _file (elemento do FILE *s) gostaria de saber o que quer mesmo dizer o dito cujo pois nao consegui entender... linha onde da o "break" no debug: input.c if (longone) *(long UNALIGNED *)pointer = (unsigned long)number; segue o link onde podem fazer ao download do codigo tudo... https://dl.dropbox.com/u/62962077/Trepa%20colinas.zip Edited January 1, 2013 at 10:19 PM by jluis
pmg Posted January 1, 2013 at 10:33 PM Report #489222 Posted January 1, 2013 at 10:33 PM Liga o maximo de warnings do teu compilador. O teu compilador pode-te ajudar a encontrar alguns erros no codigo. What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
HappyHippyHippo Posted January 1, 2013 at 11:57 PM Report #489232 Posted January 1, 2013 at 11:57 PM coloca o código todo .... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
jluis Posted January 2, 2013 at 11:28 PM Author Report #489326 Posted January 2, 2013 at 11:28 PM boas... hoje depois de muitas horas devolta deste erro deparei-me com a coisa mais estupida de sempre... o que faltava era um & 😞 ficando fscanf(f, " %d", &preco[100]); muito obrigado pela ajuda prestada de qualquer das formas... abraços
HappyHippyHippo Posted January 3, 2013 at 07:17 AM Report #489341 Posted January 3, 2013 at 07:17 AM pois, mas sem saber a declaração de preco seria impossível saber. é por essa razão que coloca o código todo .... se preco tivesse sido declarado como e seguinte, o código não teria problemas nenhum: int * preco[1000]; para a próxima, a resposta será imediata se tal pedido for respondido IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now