Hallo,
Ik moet voor school een snoepautomaat nabootsen als project. Aangezien het nu vrijdag na 12 uur is, zijn alle docenten dus bij de vrouw en kids en worden we aan ons lot overgelaten.......
Ik heb een vraag mbt. de benadering van pointers en de benadering van de inhoud van pointers, Ik heb de volgende functie ontwikkeld, deze stopt een event (enum) in een mailBox object, naast dat deze het event in een mailBox duwt kan hij ook nog data (hetzij een enum van Snoep, hetzij een double geldbedrag zijn) in een ander mailBox.
een andere threat leest deze mailbox van tijd tot tijd uit en gaat dan hierop reageren, eventueel met de bijgevoegde data. Hieronder word bijvoorbeeld als er een geldInworpEvent is opgetreden
ik lees dus uit de mailbox de waarde die ik net erin gestopt heb, en ga hiermee aan de slag. Het enige probleem is dat ik dus ipv 0,05 0,10 0,20 etc. waardes er getallen ala 3.12 * 10^40 uitkrijg. Duidelijk is dus dat ik ergens een fout(je) heb zitten mbt het doorgeven van een pointer of inhoud van een geheugenhokje
Aangezien ik pas sinds een paar weken met C aan de gang ben (van te voren met C#, die zo lief is voor mij om het geheugengebeuren zelf te fixen) heb ik niet echt een id waar ik mee bezig ben qua geheugen adressering en pointerverhalen. Dus wees aub mild
Ow en dan nog een ander vraagje,
Ik stop die snoepmerken (Mars, Snikkers, Twix) in een enum, maar aangezien ik van mijn invoer een string krijg met deze waardes moet ik 1 van de twee natuurlijk omzetten naar de juiste waarde, hoe kan ik dit het beste doen? via een switch of typecasten?
Ik moet voor school een snoepautomaat nabootsen als project. Aangezien het nu vrijdag na 12 uur is, zijn alle docenten dus bij de vrouw en kids en worden we aan ons lot overgelaten.......
Ik heb een vraag mbt. de benadering van pointers en de benadering van de inhoud van pointers, Ik heb de volgende functie ontwikkeld, deze stopt een event (enum) in een mailBox object, naast dat deze het event in een mailBox duwt kan hij ook nog data (hetzij een enum van Snoep, hetzij een double geldbedrag zijn) in een ander mailBox.
C:
1
2
3
4
5
6
7
8
9
| void sendEvent_Automaat(Automaat* automaatje, AutomaatEvents e, void* data){ put_mailBox(&((*automaatje)->automaatMail),&e); if (e == ProductknopInduwen){ put_mailBox(&((*automaatje)->productMail),(Snoep*) data); } if (e == GeldInwerpen){ put_mailBox(&((*automaatje)->geldMail),(double*) data); } } |
een andere threat leest deze mailbox van tijd tot tijd uit en gaat dan hierop reageren, eventueel met de bijgevoegde data. Hieronder word bijvoorbeeld als er een geldInworpEvent is opgetreden
C:
1
2
3
4
5
6
7
8
9
10
| static void GeldInworp(void* automaatje){ Automaat* mAutomaat = (Automaat*) automaatje; double inworp; get_mailBox(&(*mAutomaat)->geldMail,&inworp); (*mAutomaat)->saldo += (inworp); char test[100]; sprintf(test,"%.2f",&((*mAutomaat)->saldo)); (*mAutomaat)->disp(test); } |
ik lees dus uit de mailbox de waarde die ik net erin gestopt heb, en ga hiermee aan de slag. Het enige probleem is dat ik dus ipv 0,05 0,10 0,20 etc. waardes er getallen ala 3.12 * 10^40 uitkrijg. Duidelijk is dus dat ik ergens een fout(je) heb zitten mbt het doorgeven van een pointer of inhoud van een geheugenhokje
Aangezien ik pas sinds een paar weken met C aan de gang ben (van te voren met C#, die zo lief is voor mij om het geheugengebeuren zelf te fixen) heb ik niet echt een id waar ik mee bezig ben qua geheugen adressering en pointerverhalen. Dus wees aub mild
Ow en dan nog een ander vraagje,
Ik stop die snoepmerken (Mars, Snikkers, Twix) in een enum, maar aangezien ik van mijn invoer een string krijg met deze waardes moet ik 1 van de twee natuurlijk omzetten naar de juiste waarde, hoe kan ik dit het beste doen? via een switch of typecasten?
[ Voor 7% gewijzigd door RobIII op 23-03-2007 18:36 . Reden: Code tags toegevoegd ]
Mess with the best, die like the rest