04. oktober 2002 - 14:04Der er
6 kommentarer og 2 løsninger
Type casting
Når man læser en linie med "%s", hvordan typercaster man så denne til en "char *a" ? eller hvordan opretter man en string som %s, ligesom man erklærer en "int q", som kan læses som "%d" ?
Det er i forbindelse med message passing jeg bruger det. En message modtager jeg som "%s"(kan den sendes og modtages på andre måder?), men jeg har brug for det som "char *a". Hvordan typer caster jeg %s til en char *b?
trp79 >> Prøv lige at poste koden, så vi kan se hvad du prøver på - som kamikaze siger, så er %s en printf/scanf formateringsnotation, der dækker over en pointer til et char array. (Dvs. en nul-termineret char-streng.)
Windows selv er skrevet i C, så de messages du får tilbage fra Windows ER også char-strenge, dvs. analoge til streng[25] ovenfor. (Som jo altså kan indeholde 24 tegn + nul-terminering.)
char streng[25]; // En pointer der peger på 25 bytes memory //... char tekst[25]; char* streng = &tekst;// En pointer der peger på 25 bytes memory char* streng2; // En pointer, der ikke peger nogen steder hen
Koden omhandler Message Passing og Semafor. Jeg har fundet ud af det, og det var faktisk en pinlig fejl. Det kræver en lidt længere udredelse men det var noget med at jeg sendte en streng med et linieskift i beskeden. Det var dette linieskift der ikke skulle være sendt med over til den anden proces. Anyway, jeg er blevet lidt klogere hvad angår strenge, så i får tak :o)
Synes godt om
Ny brugerNybegynder
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.