![]() |
[C] - een relationele liedjesdatabase
Ik heb een (minimale) relationele database voor liedjes gemaakt, maar hij kent 1 bug; de albumnamen worden dubbel ingevoerd!
de sourcecode staat op: http://home.kabelfoon.nl/~bwiegm/songdb.tar.bz2 graag hulp, want ik weet t echt niet meer :O |
Ik snap niet echt wat je bedoel met albumnamen worden dubbel ingelezen, maar heb wel alvast anderhalve andere bugs voor je gevonden:
1. In readline als !(i < length) wordt s[i] = '\0' geschreven met i op length (dus een er voorbij). Dit kan je beter oplossen met een if-je als: if (++i >= length ) { --i; break } 1.5. typedef char* string is vies en maakt dingen onnodig onduidelijk. het suggereert dat string iets speciaals is terwijl het gewoon een char* is. 1.7. Voor alle andere typedefs die van pointers aparte namen maakt geldt hetzelfde. Het maakt de code onnodig onleesbaar. Verder geeft gcc -Wall -g3 nog 2 foutjes, main returned niks en ergens zit een onduidelijk if() if() {} else {} Beide niet relevant zover ik kan zien. |
typedef char * geeft een flexibiliteit, nl als ik ooit unicode chars wil gebruiken, is dat maar 1 regel code aanpassen :)
idem voor andere typedefs.. maar ik zal er naar kijken :) |
Citaat:
|
eh.... serieus? als ik het compileer met gnu gcc 3.4.3 (versie van slack 10.1), heb ik dan direct unicode support? relaxed...
ik kan op dit moment niet bij de sourcecode, maar ik weet iig dat in de code voor het verwijderen van een element kans is op een memory leak: als je een listhead verwijderd, word de bijbehorende naamstring niet verwijderd en de lijst die erbij hoort ook niet.... :( foutje :) |
Citaat:
Heb je inmiddels je probleem al opgelost? |
nope, ben week op vakantie geweest, daarom kon ik ook niet bij de source :) maar deze bug schoot me te binnen......
ik weet ook niet of ik er morgen aan kan werken (ga naar lowlands :)) maar ik post t wel als k zie wat t was edit: *huilt*. de bug is er _alleen_ bij een paar cd's, zoals superunknown - de titel 'commit this to memory' word gewoon goed verwerkt, evenals 'version 2.0' :( |
het lijkt op een fout met glibc:
na 3 maal 'superunknown' invoeren krijg ik een fout met 'glibc: free(): invalid size' na 3 maal 'commit this to memory' invoeren doettie t prima :) nou ja, ik ga het hercompileren op een andere (oudere versie van glibc) computer, en dan kijken wat er gebeurt |
Citaat:
|
well, op m'n 486 met een oude versie van glibc doettie t nie :)
(hoewel hij 'm 1 keer te veel alloceerd, dat is) maar ik zal er nog 'ns goed naar kijken |
ahem...
kleine fout in cleanstring() gefixed nu :) |
Alle tijden zijn GMT +1. Het is nu 02:14. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.