Jump to content
jluis

erro em ficheiros (visual studio)

Recommended Posts

jluis

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 by apocsantos

Share this post


Link to post
Share on other sites
pmg

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!

Share this post


Link to post
Share on other sites
jluis

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 by jluis

Share this post


Link to post
Share on other sites
pmg

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!

Share this post


Link to post
Share on other sites
jluis

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

Share this post


Link to post
Share on other sites
HappyHippyHippo

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

Share this post


Link to post
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
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  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.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.