<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[unint8_t array übergeben]]></title><description><![CDATA[<p>Ich versuche ein Array an eine Funktion zu übergeben und das Array in der Funktion zu füllen. Danach will ich die Inhalte am Aufrufort verwenden:</p>
<pre><code>bool Sensor_CHR6DM::empfangen(uint8_t stream[])
{
  ...
  std::cout &lt;&lt; &quot;Marker 1\n&quot;;

  stream[0] = 's';
  stream[1] = 'n';
  stream[2] = 'p';
  stream[3] = 0xb7;

  std::cout &lt;&lt; &quot;Marker 2\n&quot;;
  ...
}

main()
{
  ...
  uint8_t data[1000];
  empfangen(data);
  ...
}
</code></pre>
<p>Leider gibt es FAST immer einen Speicherzugriffsfehler:</p>
<p>Marker 1<br />
Speicherzugriffsfehler (Speicherabzug geschrieben)</p>
<p>Sehr selten läuft es aber. Mache ich irgendwas falsch??</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306187/unint8_t-array-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 12:25:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306187.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 20 Jul 2012 11:49:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to unint8_t array übergeben on Fri, 20 Jul 2012 11:58:13 GMT]]></title><description><![CDATA[<p>Ich versuche ein Array an eine Funktion zu übergeben und das Array in der Funktion zu füllen. Danach will ich die Inhalte am Aufrufort verwenden:</p>
<pre><code>bool Sensor_CHR6DM::empfangen(uint8_t stream[])
{
  ...
  std::cout &lt;&lt; &quot;Marker 1\n&quot;;

  stream[0] = 's';
  stream[1] = 'n';
  stream[2] = 'p';
  stream[3] = 0xb7;

  std::cout &lt;&lt; &quot;Marker 2\n&quot;;
  ...
}

main()
{
  ...
  uint8_t data[1000];
  empfangen(data);
  ...
}
</code></pre>
<p>Leider gibt es FAST immer einen Speicherzugriffsfehler:</p>
<p>Marker 1<br />
Speicherzugriffsfehler (Speicherabzug geschrieben)</p>
<p>Sehr selten läuft es aber. Mache ich irgendwas falsch??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2234347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2234347</guid><dc:creator><![CDATA[fabske]]></dc:creator><pubDate>Fri, 20 Jul 2012 11:58:13 GMT</pubDate></item><item><title><![CDATA[Reply to unint8_t array übergeben on Fri, 20 Jul 2012 12:02:03 GMT]]></title><description><![CDATA[<p>Klingt nach undefiniertem Verhalten. Was in deinem Fall nach Zugriffen außerhalb der Array-Grenzen klingt.</p>
<p>Also</p>
<pre><code class="language-cpp">int arr[30];
arr[30] = 12345; //Zugriffsfehler
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2234350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2234350</guid><dc:creator><![CDATA[Jonas OSDever]]></dc:creator><pubDate>Fri, 20 Jul 2012 12:02:03 GMT</pubDate></item><item><title><![CDATA[Reply to unint8_t array übergeben on Fri, 20 Jul 2012 12:07:56 GMT]]></title><description><![CDATA[<p>Das kann ich glaub ausschließen.<br />
Sobald ich mein Programm so ändere &quot;läuft&quot; es (macht halt keinen Sinn mehr..)</p>
<pre><code>bool Sensor_CHR6DM::empfangen(uint8_t streamALT[]) 
{ 
  uint8_t stream[1000];
  ... 
  std::cout &lt;&lt; &quot;Marker 1\n&quot;; 

  stream[0] = 's'; 
  stream[1] = 'n'; 
  stream[2] = 'p'; 
  stream[3] = 0xb7; 

  std::cout &lt;&lt; &quot;Marker 2\n&quot;; 
  ... 
} 

main() 
{ 
  ... 
  uint8_t data[1000]; 
  empfangen(data); 
  ... 
}
</code></pre>
<p>Es muss irgendwas mit dem Übergeben zu tun haben, bzw. dem weiteren Verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2234352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2234352</guid><dc:creator><![CDATA[fabske]]></dc:creator><pubDate>Fri, 20 Jul 2012 12:07:56 GMT</pubDate></item><item><title><![CDATA[Reply to unint8_t array übergeben on Fri, 20 Jul 2012 12:17:40 GMT]]></title><description><![CDATA[<p>Ich habe den Fehler gefunden.<br />
Die Funktion hatte früher das Array selbst deklariert. Nun habe ich sie so umgebaut dass sie das Array übergeben bekommt. In der Funktion wird zwei mal read() aufgerufen, und das nun so:</p>
<pre><code>bool Sensor_CHR6DM::empfangen(uint8_t stream[]) 
{ 
  ...
  int res = read((fd_seriell),stream,39);//Stream lesen
  ...
  int res = read((fd_seriell), &amp;stream[4], 35);
  ...
}
</code></pre>
<p>Einmal möchte ich 39 Byte lesen und in den stream[] stecken, beim weiten Mal nur 15 und an der 4. Stelle anfangen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2234359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2234359</guid><dc:creator><![CDATA[fabske]]></dc:creator><pubDate>Fri, 20 Jul 2012 12:17:40 GMT</pubDate></item></channel></rss>