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

Problema com cout


Diogo Rupolo

Pergunta

Pessoal estou tendo um problema estranho. Toda vez que comento um cout no programa, meus resultados começam a apresentar valores estranhos, mudam de valores. Não sei o que está acontecendo. As vezes pegam resultados que são lixos. Perguntei em um outro lugar e o rapaz me respondeu o seguinte:

" Inclua bound checking nas opções do compilador. Aparentemente você está em algum momento acessando uma área de memória inválida pelo seu código. Este tipo de erro ocorre tipicamente por duas situações: acessar índices inválidos de vetores e acessar ponteiros inválidos. Como eu não vi ponteiros no seu código imagino que o erro então esteja ligado a primeira opção. Se você estiver usando gcc a opção é "-fbounds-checking".

Não consegui fazer isso, nem resolver meu problema. Estou usando o Codeblocks no gcc. Testei no Dev, apresentou o mesmo problema. Não tem como postar o código aqui pois tem vários arquivos. Alguém já se deparou com algo similar?

Grato

Diogo Rupolo

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Nunca me deparei com isso, mas para adicionar o "bound-checking" você deve ter que 'setar' alguma flag ( -fbounds-checking ) nas opções do compilador.

Att.,

Pedro

Editado por PedroCunha
Link para o comentário
Compartilhar em outros sites

  • 0

Estou procurando. Tenho quase certeza que é nas opções do compilador e debugger. Poderia postar a parte do seu código que dá o erro para eu poder testar aqui em casa?

Att.,

Pedro

¹Diogo, como você pode ver na foto que vou postar em anexo nesse post, quando eu tentei compilar o um programa que acessava um índice além do limite, usando a flag -fcheck=bounds (que é a versão atual do comando que você postou), deu um erro. Veja a foto:

fcheckboundsc.png

O erro fala que esse comando é válido para Fortran, mas não é válido para C++. Então minha sugestão é que você poste seu código aqui para que possemos lhe ajudar.

Att.,

Pedro

Editado por PedroCunha
Link para o comentário
Compartilhar em outros sites

  • 0

Pedro tentei resumir aqui bem rápido o código. Está meio bagunçado, mas é só pra mostrar a parte do erro mesmo. Tire o comentário da linha 162 onde apresenta um cout e coloque novamente. Vai ver que os valores mudam. O valor correto final do programa é 531.99. Isso acontece com outros cout também no código. Segue o link para dowload:

http://www.4shared.com/rar/qnfaa4so/Testando_problema.html?

Att;

Diogo

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui resolver o problema colocando um cin.sync() - comando semelhante ao fflush(), que limpa o buffer e sincroniza o cin - após a linha 162. Meu palpite é que alguma das operações que você fez deixou algo no buffer e por isso os resultados estavam vindo diferentes. E acho que o motivo de o resultado certo aparecer quando você 'descomentava' a linha era que ao usar o cout em conjunto com o endl você limpava o buffer de alguma maneira.

Att.,

Pedro

¹ O código é sobre alguma coisa relacionada à Física? Vi coisas como valor de resistência e achei muito interessante, :D.

Editado por PedroCunha
Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade faço mestrado em Engenharia Elétrica, to programando um código bem extenso. Essa função ai fiz uns 7 meses atrás. Tenho que arrumar certinho essa função. Tá meio bagunçada. Me desculpa. Está até ruim de entender. Estava iniciando a programar quando fiz ela. Agora percebi que estava me causando problemas. Vou usar esses comandos no código geral e tentar resolver o problema. Obrigado Pedro e até mais!

Att;

Diogo

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...