Èt nummer til en ** position?

Tags:    c++

<< < 123 > >>
Hej.

Jeg er igang med at lave en "sudoku solver."
Da jeg ikke min kode havde skrevet:

Fold kodeboks ind/udKode 


Og efter noget tid, blev mig og min compiler enige om at det kunne ikke la' sig gøre.
Men jeg syndes selve konceptet er godt.

-Så mit spørgsmål er om det er muligt at associere et nummer (i form af int eller char)
til et punkt i en pointer array.

Tak på forhånd .



Indlæg senest redigeret d. 13.11.2009 14:56 af Bruger #13865
I koden i zip-filen skriver du flere gange til index 9, det går ikke da du kun har 9 pladser i arrayet, fra og med 0 til og med 8

Du har f.eks. i main:
Fold kodeboks ind/udKode 


Hvis du fixer det så vil programmet køre. Det var måske en ide at lave et check i funktionerne i Level der verificerede index.



Nååår ..Så er det derfor jeg først fik fejlen i run-time.

Har brugt "replace all" dum idé :$

simple fejl jeg sagtens kunne spildt min egen tid på at finde. Men tusind tak for hjælpen :D



Nååår ..Så er det derfor jeg først fik fejlen i run-time.

Har brugt "replace all" dum idé :$

simple fejl jeg sagtens kunne spildt min egen tid på at finde. Men tusind tak for hjælpen :D


Prøv at bruge defines i stedet for hardkodede tal.

Skidt:
Fold kodeboks ind/udKode 


Godt:
Fold kodeboks ind/udKode 


Så kan du senere omdefinere MATRIX_MAX og så slår ændringen igennem alle steder.



Ifölge Scott Meyers, skal man holde sig væk fra #define og bruge const i stedet:

Fold kodeboks ind/udKode 




Ifölge Scott Meyers, skal man holde sig væk fra #define og bruge const i stedet:

Fold kodeboks ind/udKode 


yeah well...det afhænger af en fandens masse ting men i dette tilfælde vil en const int nok være bedst.



Jeg kan egentlig bedre lide enum metoden:
enum MyMagicNumbers
{
MATRIX_MAX = 9
};



Jeg kan egentlig bedre lide enum metoden:
enum MyMagicNumbers
{
MATRIX_MAX = 9
};


Hvad hvis flere skal have samme værdi ?

MATRIX_ROWS = 9,
MATRIX_COLS = 9



Det er ingen problem at have flere med samme værdi.
Med enum kan man også:
Fold kodeboks ind/udKode 





const int MATRIX_MAX = 9

Er ikke lige den beste løsning da jeg både køre loops til 9 i min level.cpp og main.cpp.

Og vil ikke lave det en global eller public. (Som efter min mening ikke er en god idé.)

Robert Larsen: Hvad er der galt med at bruge #define ?
.

Efter min menning, kan jeg ikke se nogen grund til at bruge enum. Jeg mener, hvad er fordelen hvis værdierne er de samme?




Robert Larsen: Hvad er der galt med at bruge #define ?


Defines kan være helt udemærkede at bruge, men mange forstår dem ikke og bruger dem forkert.

F.eks.:
Fold kodeboks ind/udKode 


Den kan bruges til at finde den største af to værdier:
Fold kodeboks ind/udKode 


Men prøv at gætte hvad følgende vil skrive:
Fold kodeboks ind/udKode 


Derudover er const mere typesikker hvor defines kræver et cast.

Til gengæld er defines nødvendige til platform uafhængig kode. Specielt hvis du udvikler til Linux med autotools værkøjerne vil du se megen:
Fold kodeboks ind/udKode 


...det kan ikke rigtig lade sig gøre på andre måder.



<< < 123 > >>
t