<?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[unsigned char zum speichern von float-daten]]></title><description><![CDATA[<p>hallo!</p>
<p>ich habe folgendes gegeben:</p>
<pre><code class="language-cpp">unsigned char *pData;
</code></pre>
<p>und möchte hier 1000 float werte speichern (pFloatData enhält float-werte, wobei die anzahl der werte nach beendigung der schleife 1000 ist):</p>
<pre><code class="language-cpp">pData = new char[1000*sizeof(float)];

const float *pFloatData;
pFloatData = (const float *)FloatDataBlock();

while ...
{
pData += pFloatData;
pFloatData++;
}
</code></pre>
<p>und zum testen wird das ganze auch wieder ausgelesen:</p>
<pre><code class="language-cpp">const unsigned char * ppData = pData;

	float fv;
	for (int i=0; i&lt;1000; i++)
	{
		fv = *(const float *)ppData;
		printf(&quot;value: %f &quot;, fv);
		ppData += sizeof(const float *);
	}
</code></pre>
<p>das ganze läuft zwar, aber es werden falsche werte ausgegeben.<br />
kann mir jemand bitte etwas weiterhelfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/135617/unsigned-char-zum-speichern-von-float-daten</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 01:10:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/135617.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 03 Feb 2006 11:55:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to unsigned char zum speichern von float-daten on Fri, 03 Feb 2006 11:56:59 GMT]]></title><description><![CDATA[<p>hallo!</p>
<p>ich habe folgendes gegeben:</p>
<pre><code class="language-cpp">unsigned char *pData;
</code></pre>
<p>und möchte hier 1000 float werte speichern (pFloatData enhält float-werte, wobei die anzahl der werte nach beendigung der schleife 1000 ist):</p>
<pre><code class="language-cpp">pData = new char[1000*sizeof(float)];

const float *pFloatData;
pFloatData = (const float *)FloatDataBlock();

while ...
{
pData += pFloatData;
pFloatData++;
}
</code></pre>
<p>und zum testen wird das ganze auch wieder ausgelesen:</p>
<pre><code class="language-cpp">const unsigned char * ppData = pData;

	float fv;
	for (int i=0; i&lt;1000; i++)
	{
		fv = *(const float *)ppData;
		printf(&quot;value: %f &quot;, fv);
		ppData += sizeof(const float *);
	}
</code></pre>
<p>das ganze läuft zwar, aber es werden falsche werte ausgegeben.<br />
kann mir jemand bitte etwas weiterhelfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/984927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/984927</guid><dc:creator><![CDATA[pixsta]]></dc:creator><pubDate>Fri, 03 Feb 2006 11:56:59 GMT</pubDate></item><item><title><![CDATA[Reply to unsigned char zum speichern von float-daten on Fri, 03 Feb 2006 12:06:05 GMT]]></title><description><![CDATA[<p>Die Zeile &quot;pData+=pFloatData;&quot; sieht irgendwie falsch aus (Pointer können normalerweise nur mit Ganzzahlen addiert werden). Wenn du die nächste float-Position in deinem Array ansprechen willst, nimm lieber &quot;pData+=sizeof(float);&quot;</p>
<p>(btw bin ich mir nicht sicher, ob sizeof(const float*) der richtige Erhöhungsschritt für die Ausgabe ist)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/984941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/984941</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 03 Feb 2006 12:06:05 GMT</pubDate></item><item><title><![CDATA[Reply to unsigned char zum speichern von float-daten on Fri, 03 Feb 2006 12:52:19 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">pData = pFloatData; 
pData += sizeof(const float);
</code></pre>
<p>das ergebnis bleibt aber immer noch falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/984972</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/984972</guid><dc:creator><![CDATA[pixsta]]></dc:creator><pubDate>Fri, 03 Feb 2006 12:52:19 GMT</pubDate></item><item><title><![CDATA[Reply to unsigned char zum speichern von float-daten on Fri, 03 Feb 2006 13:02:02 GMT]]></title><description><![CDATA[<p>pData zeigt zu Beginn auf einen unstrukturierten Block der Größe 1000*x, pFloatData auf ein Array von float-Werten. In der Schleife werden beide Zeiger stückweise durch ihre jeweiligen Arrays geschleift.</p>
<p>a) kopierst du in der Schleife überhaupt Daten zwischen den beiden Arrays?<br />
b) Wenn du beim Lesen wieder von vorne anfangen willst, mußt du dir die Adresse des Blockanfangs merken:</p>
<pre><code class="language-cpp">char* pData = new char[...];
char* pwData=pData;

while(...)
{
  ...
  pwData+=sizeof(float);
}
</code></pre>
<pre><code class="language-cpp">char* prData=pData;
float fv;
for (int i=0; i&lt;1000; i++)
{
  fv = *(const float *)ppData;
  printf(&quot;value: %f &quot;, fv);
  ppData += sizeof(const float *);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/984981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/984981</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Fri, 03 Feb 2006 13:02:02 GMT</pubDate></item><item><title><![CDATA[Reply to unsigned char zum speichern von float-daten on Fri, 03 Feb 2006 13:20:10 GMT]]></title><description><![CDATA[<p>danke. ich mache es jetzt mit memcpy und jetzt funkt es.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/984996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/984996</guid><dc:creator><![CDATA[pixsta]]></dc:creator><pubDate>Fri, 03 Feb 2006 13:20:10 GMT</pubDate></item></channel></rss>