ricardo99 0 Denunciar post Postado Fevereiro 7, 2013 Bom pessoal estou atualmente fazendo uma materia de estrutura de dados e gostaria de que algum membro com alguma experiencia no assunto pudesse conferir meus codigos, pois pelo fato de ser novato não consigo ver erros mais elaborados. OBS: todos os codigos estao auto esplicativos e bem detalhados. OBS: por serem ao todo 9 codigos relativamente extensos eu os postem no 4 shared caso achem necessario que eu os postem aqui me avisem (ira ocupar muito espaço) Link: http://www.4shared.com/rar/Pi46fRN_/ESTRUTURAS_DE_DADOS.html Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Fevereiro 7, 2013 Olá! Sugestões: Leia isso: http://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/'>system("pause") e fflush(stdin) --------------- Pesquise sobre buffer overflow, é muito perigoso colocar tudo o que foi digitado em uma linha em uma array de caracteres com limite, pois se o que foi digitado for maior que o tamanho da array - 1 (-1 pois precisa do espaço para o '\0') a memória após a array vai ser sobrescrita, o que pode causar problemas inesperados ou travar o seu programa, ou mesmo todo o SO, dependendo de qual você está usando. Então, para entrada de dados, evite usar o scanf(), pois é perigoso o seu uso. Use, no mínimo, o http://www.cplusplus.com/reference/cstdio/fgets/'>fgets() da seguinte forma: fgets(myString, strlen(myString), stdin); /* stdin pode ser substituído por uma stream de entrada qualquer, claro. */ Isso vai fazer com que, caso o que a pessoa digitar for maior que a string myString, somente os caracteres que cabem na string serão colocados nela, e o resto será descartado. Claro, isso é um problema também, mas buffer overflows normalmente tem implicações bem ruins, modificando o comportamento do programa após várias milhares de linhas de código, deixando impossível saber onde é o bug, ou, nos melhores casos, dando um crash que no linux é o famoso "core dumped". Existem outras funções que são perigosas pelo o mesmo motivo, deixarei você dar uma pesquisada para aprender mais sobre o assunto ;) ------------------------------- Caso eu tiver mais tempo dou uma olhada em mais arquivos, só olhei o "Fila estática". Mas, de um modo geral, está muito bom sim. Você aprendeu essas boas práticas que colocou no nome do arquivo na faculdade? Se sim, qual? Você foi ensinado muito bem, não é o que costumo ver por aqui... Abraços :D Compartilhar este post Link para o post Compartilhar em outros sites
ricardo99 0 Denunciar post Postado Fevereiro 7, 2013 Universidade Federal de Goiás (UFG) qualquer erro da estrutura exceto estes system("pause") e fflush(stdin) me avise Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
GBecker 51 Denunciar post Postado Fevereiro 7, 2013 Pesquise sobre buffer overflow, é muito perigoso colocar tudo o que foi digitado em uma linha em uma array de caracteres com limite, pois se o que foi digitado for maior que o tamanho da array - 1 (-1 pois precisa do espaço para o '\0') a memória após a array vai ser sobrescrita, o que pode causar problemas inesperados ou travar o seu programa, ou mesmo todo o SO, A famosa "tela azul da morte" do windows! hahaha Desculpe pela brincadeira. Compartilhar este post Link para o post Compartilhar em outros sites
ricardo99 0 Denunciar post Postado Fevereiro 8, 2013 Pessoal este é o menor e mais facil dos problemas destes codigos. eu preciso saber se há algum problema nas estruturas de dados. Compartilhar este post Link para o post Compartilhar em outros sites
GBecker 51 Denunciar post Postado Fevereiro 8, 2013 Revisou os ponteiros que você usa no código? Este não é um problema "menor", e sim o principal. A estrutura é só uma coleção de dados, deve ter cuidado em como manipula elas. Compartilhar este post Link para o post Compartilhar em outros sites
ricardo99 0 Denunciar post Postado Fevereiro 8, 2013 eu disse que o estouro de memoria com o array de string era o menor dos problemas; ai esta O problema como sou novato não sei se esta 100% certo por isso mandei para ca para que alguem pudesse ver se estava correto Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Fevereiro 14, 2013 Qualquer fonte de undefined behavior precisa ser tratada, pois afeta todo o resto do programa. Compartilhar este post Link para o post Compartilhar em outros sites