<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Tak s tím teď taky bojuji a něco dělám špatně. Mám strukturu, pro
jednoduchost takto</p>
<div style="color: #4e5b61;background-color: #ffffff;font-family: Consolas, 'Courier New', monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;"><div><span style="color: #00979d;">struct</span><span style="color: #4e5b61;"> tDATA </span><span style="color: #434f54;">{</span></div><span style="color: #4e5b61;"> </span><span style="color: #00979d;">int16_t</span><span style="color: #4e5b61;"> x</span><span style="color: #4e5b61;">;</span><div><span style="color: #4e5b61;"> </span><span style="color: #00979d;">int16_t</span><span style="color: #4e5b61;"> y</span><span style="color: #4e5b61;">;</span></div><span style="color: #434f54;">}</span><span style="color: #4e5b61;"> DATA;</span></div>
<div style="color: #4e5b61;background-color: #ffffff;font-family: Consolas, 'Courier New', monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;">
</div>
<div style="color: #4e5b61;background-color: #ffffff;font-family: Consolas, 'Courier New', monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;">byte buf[2];</div>
<div style="color: #4e5b61;background-color: #ffffff;font-family: Consolas, 'Courier New', monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;">uint16_t ADRESA;
</div>
<p></p>
<p>Potřebuji do ní zapisovat tak, jako by to bylo pole, tedy jakoby
x bylo DATA[0] a y bylo DATA[1]. <br>
</p>
<p>Napsal jsem to takto:</p>
<div style="color: #4e5b61;background-color: #ffffff;font-family: Consolas, 'Courier New', monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;"><div><span style="color: #00979d;">int16_t</span><span style="color: #4e5b61;"> *ADATA=</span><span style="color: #434f54;">(</span><span style="color: #00979d;">int16_t</span><span style="color: #4e5b61;">*</span><span style="color: #434f54;">)</span><span style="color: #4e5b61;">&DATA+ADRESA*</span><span style="color: #005c5f;">2</span><span style="color: #4e5b61;">;</span></div><div><span style="color: #4e5b61;">*ADATA=</span><span style="color: #d35400;">buf</span><span style="color: #4e5b61;">;</span></div><div><span style="color: #4e5b61;">
</span></div><div><span style="color: #4e5b61;">A očekával jsem, že jestliže pointer ADATA je typu int16_t, bude se to chovat tak, že pokud do ADRESA dám 0 zapíšou se dva byte z buf do proměnné x, pokud dám do ADRESA 1, zapíšou se do y.
</span></div><div><span style="color: #4e5b61;">Ale nefunguje to. Co je blbě?</span></div><div><span style="color: #4e5b61;">
</span></div><div><span style="color: #4e5b61;">Je mi jasné, že asi jednodušší je použít memcpy, ale já bych rád věděl, co dělám blbě.
</span></div></div>
<p></p>
<pre class="moz-signature" cols="72">--
Martin Záruba</pre>
</body>
</html>