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