[quote=Markus Alemao][quote=Neviat]
…
Onde errei?[/quote]
Em escolher C como linguagem :lol: [/quote]
:lol:
Não que eu queira programar em C, mas me recomendaram C para começar…
Eu estava aprendendo Java antes de ir pra C, pode ter certeza que estou como muita saudade dele!
[quote=Neviat][quote=Markus Alemao][quote=Neviat]
…
Onde errei?[/quote]
Em escolher C como linguagem :lol: [/quote]
:lol:
Não que eu queira programar em C, mas me recomendaram C para começar…
Eu estava aprendendo Java antes de ir pra C, pode ter certeza que estou como muita saudade dele![/quote]
Sim sim, eu estava brincando, realmente C é a base praticamente tudo, e é bastante interessante começar por essa linguagem.
Access Violation indica que você está tentando acessa uma posição de memória inválida. Isso ocorre, por exemplo, quando você tenta acessa um índice que não existe em um vetor, ou tenta ler um ponteiro nulo.
Estude o gdb, um utilitário que possibilita o debug de aplicações escritas em C. Ele te ajudará a ter um diagnóstico melhor do problema que fez a sua aplicação quebrar.
[quote=matheuslmota]Access Violation indica que você está tentando acessa uma posição de memória inválida. Isso ocorre, por exemplo, quando você tenta acessa um índice que não existe em um vetor, ou tenta ler um ponteiro nulo.
Estude o gdb, um utilitário que possibilita o debug de aplicações escritas em C. Ele te ajudará a ter um diagnóstico melhor do problema que fez a sua aplicação quebrar.[/quote]
Obrigado! Não encontrei nenhum erro desse tipo no código… =/
Vou procurar esse tal de gdb, vlw!
Carinha, na linha 59, to puxando da memória, mas o scanf pede o endereço da variável, e você está colocando direto o valor da variável. Acho que é isso que está gerando o access violation.
Carinha, na linha 59, to puxando da memória, mas o scanf pede o endereço da variável, e você está colocando direto o valor da variável. Acho que é isso que está gerando o access violation.
scanf("%li", ct[acc].acesso[0]); // o erro aparece qnt se entra com a conta, o programa simplesmente para de funcionar
[quote=abmpicoli]Carinha, na linha 59, to puxando da memória, mas o scanf pede o endereço da variável, e você está colocando direto o valor da variável. Acho que é isso que está gerando o access violation.
scanf("%li", ct[acc].acesso[0]); // o erro aparece qnt se entra com a conta, o programa simplesmente para de funcionar
ao invés faça isso:
scanf("%li", &ct[acc].acesso[0]);[/quote]
Segunda vez q crio um tópico no guj perguntando ql o problema em algum código q escreve e a resposta é q sqço se colocar o & no scanf! Vlw!!
Em C, não use goto “para trás” - todo goto para trás pode ser trocado por um do-while ou um while (dependendo do que você quer fazer.). No seu caso dois “do/while” já resolvem seu problema.
Não há problemas em adicionar labels se você acha que o seu programa fica mais claro.
Mas eles são sinais de que sua função está ficando muito comprida, ou seja, programação estilo “Linguiçaria do seu Gijo”.
Tente não ter mais de 60 linhas em uma única função.
Use goto “para frente” apenas no caso especial em que você precisa fazer um tratamento de erro excepcional e resolver seu problema com “if/then/else” não for possível, já que em C não há “try/catch”.
Eu tenho,esmo que usar o fflush? Eu não sei ainda pra q serve ou qnd devo usa-lo, só coloquei ele pq recomendaram, pq sem ele, o programa n iria passar pelo gets, pedir logo a idade