Kuinka saan "sijoitettua" char-osoittimeen vaikkapa Uint8-tyyppisen osoittimen?
Vastahan kysyit tuolla jotakin muuta tyypinmuunnosta. Samalla tavalla.
char *A; Uint8 *B; A = (char *)B; // Pitäisi toimia A = (char *)((void *)B); // Jos kääntäjä on nipo, tehdään ensin void * // Tai sitten hienosti unionilla union TPointteri { char *CharP; Uint8 *Uint8P; }; TPointteri C; Uint8 *D; C.Uint8P = D; // Ja nyt se on C.CharP:ssakin // Tai memcpy:lla memcpy(&CharPointer, &Uint8Pointer, sizeof(char *));
Joo niin kysyin, mutta en osannut soveltaa sitä tähän ongelmaan. Näköjään nuo osoittimet eivät ole vieläkään minulle täysin selviä, opinpahan jotain uutta niistäkin. Kiitos taas kerran!
Edit: Ongelmain oli tosin toisin päin, kuin viestissäni (vahingossa)kirjoitin. Minun piti asettaa Uint8-tyyppiseen osoittimeen char-tyyppinen osoitin, eli tyyppimuunnos ei pelittänyt tässä tapauksessa.
No eikö muka toimi kun vaihtaa muuttujatyyppien paikat Metabolixin mallissa? Siis näin:
char * A; Uint8 * B; B = (Uint8*)A;
Aihe on jo aika vanha, joten et voi enää vastata siihen.