<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>