Olen yrittänyt sohian osoittimien kanssa jonkin aikaa, mutta en ole onnistunut lykkäämään short intin (tai minkään muunkaan lukumuuttujan) tietoja char taulukkoon.
Tarkoitus olisi saada luku viemään vain kaksi tavua merkkijonotaulukossa viiden sijasta(esim. "15435"=5t).
Eli kuinka tällainen onnistuu ilman, että tallentaa luvun ensin binäärinä tiedostoon ja lukee sitten char taulukkoon?
/*********** ** Tapa A ** ***********/ #include <string.h> char Taulu[100]; short int Luku; /* Laitetaan luku tauluun kohdasta 20 alkaen */ memcpy(&Taulu[20], &Luku, sizeof(short int)); /*********** ** Tapa B ** ***********/ /* Laitetaan luku tauluun kohdasta 10 alkaen */ *((short int *)(&Taulu[10])) = A;
Ensimmäinen on varmaankin hitaampi, jälkimmäistä taas jotkut kääntäjät syrjivät, kun haluavat niin hanakasti estää virheitä.
Hienosti toimii, kiitos!
Aihe on jo aika vanha, joten et voi enää vastata siihen.