Ik heb een probleem waar ik na 3 uur zoeken en testen niet uitkom. Ik moet een hashtable maken met daarin willekeurige zinnen. Nu reserveer ik eerst ruimte voor de grootte van de hashtable (op dit moment 100), daarna, wanneer een zin wordt toegevoegd, een realloc van de tabel van de pointers bij de betreffende hash (meerdere strings per hash, dus wordt steeds groter) en dan een voeg ik de zin toe met een malloc aan die zin.
Echter, het probleem is dat na het toevoegen van een willekeurig aantal zinnen, er zinnen worden veranderd. De geheugenadressen in de hashtable blijven hetzelfde (ondervonden na testen), maar de zin veranderd in willekeurige tekens. Dit blijft een tijdje zo (tijdens het toevoegen), totdat de reeks weer anders wordt (weer willekeurige tekens). Ik heb dit voor een paar verschillende zinnen getest en kom er echt niet meer uit: het is niet bij een vast aantal (bij zelfde zin is het wel telkens bij bij hetzelfde aantal zinnen dat toe is gevoegd, maar de count (aantal zinnen in de hashgroep) is dan niet veranderd ofzo).
Heb wel een beetje dirty manier om de count van elke hash bij te houden, maar het werkt wel.
Beetje lastig uit te leggen, nog lastiger te vinden, ik hoop dat jullie mij wat verder kunnen helpen. Het is mijn eerste keer met malloc dus ik ben nog vrij noobie.
Iig alvast bedankt voor de moeite!
Relevante code:
Zie een latere post.
Nogmaals, de zinnen worden er daadwerkelijk goed ingezet, in de console heb ik de hele tijd één zin laten uitlezen en die blijft telkens hetzelfde, tot op bepaalde hoogte, dan verandert de zin dus in willekeurige tekens. Ik ben er een beetje wanhopig van geworden, hoop dat jullie mij verder kunnen helpen! Meer code op verzoek
.
Echter, het probleem is dat na het toevoegen van een willekeurig aantal zinnen, er zinnen worden veranderd. De geheugenadressen in de hashtable blijven hetzelfde (ondervonden na testen), maar de zin veranderd in willekeurige tekens. Dit blijft een tijdje zo (tijdens het toevoegen), totdat de reeks weer anders wordt (weer willekeurige tekens). Ik heb dit voor een paar verschillende zinnen getest en kom er echt niet meer uit: het is niet bij een vast aantal (bij zelfde zin is het wel telkens bij bij hetzelfde aantal zinnen dat toe is gevoegd, maar de count (aantal zinnen in de hashgroep) is dan niet veranderd ofzo).
Heb wel een beetje dirty manier om de count van elke hash bij te houden, maar het werkt wel.
Beetje lastig uit te leggen, nog lastiger te vinden, ik hoop dat jullie mij wat verder kunnen helpen. Het is mijn eerste keer met malloc dus ik ben nog vrij noobie.
Iig alvast bedankt voor de moeite!
Relevante code:
Zie een latere post.
Nogmaals, de zinnen worden er daadwerkelijk goed ingezet, in de console heb ik de hele tijd één zin laten uitlezen en die blijft telkens hetzelfde, tot op bepaalde hoogte, dan verandert de zin dus in willekeurige tekens. Ik ben er een beetje wanhopig van geworden, hoop dat jullie mij verder kunnen helpen! Meer code op verzoek
[ Voor 61% gewijzigd door The__Virus op 29-10-2007 08:49 ]