Avatar billede sw_red_6 Nybegynder
16. december 2004 - 14:05 Der er 5 kommentarer og
1 løsning

problem med return af unsigned int og char *

Følgende kode skulle returnere teksten i s og indeholdet i tmp korrekt?
    unsigned int tmp;
    while(ch=s[idx++]) {
        tmp = writeChTest(ch);
    }
    s = "Test af write()\r\n" + tmp;
    return s;
Det regnede jeg med, men hvorfor overskriver den "s" i stedet for kun at tilføje "tmp"
Avatar billede jpk Nybegynder
16. december 2004 - 14:14 #1
Jeg er ikke helt med på hvad du mener, men du "overskriver" jo s i linien:
s = "Test af write()\r\n" + tmp;

hvis du kun vil tilføje til s, skal du gøre noget lign.:

s += "Test af write()\r\n" + tmp;
Avatar billede sw_red_6 Nybegynder
16. december 2004 - 14:17 #2
jeg ved godt at jeg overskriver se der men det er tmp der tilsyneladende overskriver teksten (altså det er "Test af write()\r\n" der bliver overskrevet)
Avatar billede stormy Nybegynder
16. december 2004 - 15:43 #3
Den kode du viser, laver pointerarimetik på strengen "Test af write()\r\n".
Så vidt jeg kan se, må s være af typen char *, for at du får din kode oversat.

Og i så tilfælde vil koden :
s = "Test af write()\r\n" + tmp;
Ikke give det resultat du forventer - dette er ikke script sprog !

Hvad den gør, afhænger af værdien tmp

tmp = 0, resultat : s = "Test af write()\r\n"
tmp = 4, resultat : s = " af write()\r\n"
tmp = 8, resultat : s = "write()\r\n"
tmp = 300, resultat : s = udefineret !!

Hvad du sikkert ønsker er noget i stil med :

static char s[80];
unsigned int tmp;
while(ch=s[idx++]) {
    tmp = writeChTest(ch);
}
sprintf(s,"Test af write()\r\n%u\r\n", tmp )
return s;

Husk at erklære s static, eller på anden måde sikre at returværdien er defineret efter  at funktionen returnerer.
Avatar billede sw_red_6 Nybegynder
16. december 2004 - 16:02 #4
det er det sikkert men jeg har fået af vide at writeChTest ikke kan bruges til noget da den er hardware specifik. du kan godt få pointene stormy for det er sikkert rigtigt det du har skrevet
Avatar billede stormy Nybegynder
16. december 2004 - 16:38 #5
Points er ikke den primære årsag til at jeg hjælper.
Avatar billede sw_red_6 Nybegynder
16. december 2004 - 16:53 #6
jeg har det på samme måde. Men hvis du vil have point så smid et svar så får du halvdelen for det ville faktisk have hjulpet hvis jeg skulle bruge den kode.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester