Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 10-08-2005, 09:27
dragonstorm
Avatar van dragonstorm
dragonstorm is offline
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
Met citaat reageren
Advertentie
Oud 12-08-2005, 20:41
GVR
GVR is offline
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.
Met citaat reageren
Oud 12-08-2005, 21:05
dragonstorm
Avatar van dragonstorm
dragonstorm is offline
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
Met citaat reageren
Oud 12-08-2005, 21:38
GVR
GVR is offline
Citaat:
dragonstorm schreef op 12-08-2005 @ 22:05 :
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
Het is al UTF-8
Met citaat reageren
Oud 16-08-2005, 21:44
dragonstorm
Avatar van dragonstorm
dragonstorm is offline
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
Met citaat reageren
Oud 17-08-2005, 17:43
GVR
GVR is offline
Citaat:
dragonstorm schreef op 16-08-2005 @ 22:44 :
eh.... serieus? als ik het compileer met gnu gcc 3.4.3 (versie van slack 10.1), heb ik dan direct unicode support? relaxed...
Niet helemaal UTF-8 Level 1 (of zoiets). ASCII(0-127) mapped namelijk 1:1 met UTF-8. Maar de str* functies kunnen niet met UTF-8 Level > 1 omdat je dan multibyte charachters krijg die \0 kunnen bevatten en omdat bv strlen's returnvalue onduidelijk wordt (karakters of bytes?).

Heb je inmiddels je probleem al opgelost?
Met citaat reageren
Oud 17-08-2005, 23:38
dragonstorm
Avatar van dragonstorm
dragonstorm is offline
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'

Laatst gewijzigd op 18-08-2005 om 08:40.
Met citaat reageren
Oud 23-08-2005, 19:44
dragonstorm
Avatar van dragonstorm
dragonstorm is offline
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
Met citaat reageren
Oud 27-08-2005, 17:46
GVR
GVR is offline
Citaat:
dragonstorm schreef op 23-08-2005 @ 20:44 :
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
Is waarschijnlijk geen fout van libc, je schijf buiten (voor?) je stukjes geheugen. Daar zit een stukje gegevens van de malloc/free functies (een linked list als ik me niet vergis) die je overschrijf. Draai je programma eens in gdb.
Met citaat reageren
Oud 27-08-2005, 21:41
dragonstorm
Avatar van dragonstorm
dragonstorm is offline
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
Met citaat reageren
Oud 01-09-2005, 14:42
dragonstorm
Avatar van dragonstorm
dragonstorm is offline
ahem...

kleine fout in cleanstring()

gefixed nu
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar


Alle tijden zijn GMT +1. Het is nu 23:13.