Podivne chovani memcpy()
Cejka Rudolf
cejkar na dcse.fee.vutbr.cz
Středa Říjen 10 17:07:24 CEST 2001
mira <mira na tmapy.cz> wrote:
> Nicmene i tak mi to neodpovedelo na podivne chovani memcpy(), ackoli uz
> mi program funguje. Ale clovek asi nemuze vedet vsechno.
Ale odpovedelo a program s tim pretypovanim funguje jen v uvozovkach.
V memcpy() kopirujete do 4bajtove hodnoty pouze 2 bajty, tj. dva horni
bajty promennych nejsou definovane, nebo jsou definovane nekde jinde?
>> U 2 bytovych veci pouzivam opet memcpy:
>> memcpy(&cislo_1,packet+7,2);
>> promenne cislo_x jsou typu unsigned int a nechavam je vypisovat pomoci
>> printf("..%u\n",cislo_x);
>> Prvni 3 cislo_x mne ukaze dobre, druhe tri jsou ale uplne nesmysly.
Nahoda, nehoda... Takoveto prapodivne souvislosti byvaji dusledkem
"polodefinovaneho" obsahu na zasobniku.
>> Setkal se nekdo s necim podobnym? Jak jste to resili?
Ano. Bohuzel na muj vkus prilis casto. Jednim ze zpusobu
reseni muze byt napriklad tato osveta.
PS: Nezname se treba? To jmeno je mi mozna podvedome...
--
Rudolf Cejka (cejkar na dcse.fee.vutbr.cz; http://www.fee.vutbr.cz/~cejkar)
Brno University of Technology, Faculty of El. Engineering and Comp. Science
Bozetechova 2, 612 66 Brno, Czech Republic
Další informace o konferenci Linux