Every failure offers you a new opportunity! | Lokatie database|GoT - Notepad
Dan wordt dus op een gegeven moment die *p = \0 = null ~= false... -> while stopt ermee
\n en anderen hebben verder geen betekenis in pointer-code enzo
[ Voor 21% gewijzigd door ACM op 10-11-2003 10:26 ]
1
2
3
4
5
| static char * copy (char * p, const char * q) { while (*(p++) = *(q++)); return p; } |
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
Dan ontbrak dat stukje in mijn basiskennis!! thanks!ACM schreef op 10 november 2003 @ 10:26:
\0 is toch ook in C equivalent aan false?
Dan wordt dus op een gegeven moment die *p = \0 = null ~= false... -> while stopt ermee
Every failure offers you a new opportunity! | Lokatie database|GoT - Notepad
Verwijderd
Die haakjes zijn trouwens niet eens nodigkenneth schreef op 10 november 2003 @ 10:44:
C:Niet zo van die lange code schrijven, joh
1 2 3 4 5 static char * copy (char * p, const char * q) { while (*(p++) = *(q++)); return p; }
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
bliep, ik realizeerde me ineens dat jouw code niet equivalent is aan die van de topicstarter. Jouw returnwaarde wijst 1 char te ver
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Terwijl je waarschijnlijk wilt dat hij naar het begin van de char wijst toch?.oisyn schreef op 10 november 2003 @ 13:42:
[...]
bliep, ik realizeerde me ineens dat jouw code niet equivalent is aan die van de topicstarter. Jouw returnwaarde wijst 1 char te ver
1
2
3
4
5
6
| static char * cat(char * p, const char * q) { while ( *p ) ++p; while (*p = *q) ++p,++q; return p; } |
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Ja wat die strcat in de titel deed vroeg ik me straks ook al af
Kan xychix dat even toelichten?
En wat moet deze code doen? Coredumpen ofzoMSalters schreef op 10 november 2003 @ 15:22:
Titlefix, ofC:
1 2 3 4 5 6 static char * cat(char * p, const char * q) { while ( *p ) ++p; while (*p = *q) ++p,++q; return p; }
Bedoel je niet zoiets:
1
2
3
4
5
6
| static char * cat(char * p, const char * q) { while ( *p ) ++p, ++q; while (*p = *q) --p, --q; return p; } |
Dan nog zou ik het gewoon van begin tot eind doen, en een tijdelijke *s die je dan retourneert. Beter dan twee keer itereren.
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
cat (p, q) concateneert q aan p. Je moet dus eerst het eind van p opzoeken, en daarna kun je q daarnaartoe kopieren
En dan retourneer je het einde, zodat er voor de volgende cat niet opnieuw het einde gezocht hoeft te worden
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
* kenneth zoekt maar een klein donker hoekje op
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
Nog afgezien van wat oisyn zegt zal jouw code harder coredumpen dan die van MSalters, ik weet niet wat voor onkosher spul je met die q-pointer doet van jou maar eng is het wel
Sorry, rotzooien met pointers doe ik al jaren niet meer
edit: laat maar, het is ranzig, idd
* kenneth kruipt terug naar Java
[ Voor 28% gewijzigd door kenneth op 10-11-2003 16:16 ]
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.