<?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[Schreib und Lesezugriff auf std::vector, z.B.  &amp;amp;vec[0] erlaubt]]></title><description><![CDATA[<p>Hallo,</p>
<p>in meinem Programm benutze ich durchgaengig std::vector, an manchen Stellen muss ich die Daten an OpenCL uebergeben, OpenCL braucht die Daten immer in Array Form, deshalb schreibe ich folgendes:</p>
<pre><code>std::vector&lt;unsigned int&gt;vec;
.
.
.
cl::Buffer buffer = cl::Buffer(context,
                             CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR,   
                             vec.size()*sizeof(cl_uint),
                             &amp;vec.front(),&amp;err);
</code></pre>
<p>Das klappt auch ganz gut. Jedoch wenn ich spaeter die Daten wieder abholen moechte und in den selben vector kopiere, ist dann erlaubt.</p>
<pre><code>readback(buffer,vec.size()*sizeof(cl_uint), &amp;vec[0]);
</code></pre>
<p>Ich moechte die bearbeiteten Daten also im gleichen Vector speichern. Wenn ich jedoch die obere Zeile ausfuehre crasht das ganze Program. Mit einem Array klappt es.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/320583/schreib-und-lesezugriff-auf-std-vector-z-b-amp-vec-0-erlaubt</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 02:40:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/320583.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Oct 2013 05:43:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Schreib und Lesezugriff auf std::vector, z.B.  &amp;amp;vec[0] erlaubt on Fri, 04 Oct 2013 05:43:11 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>in meinem Programm benutze ich durchgaengig std::vector, an manchen Stellen muss ich die Daten an OpenCL uebergeben, OpenCL braucht die Daten immer in Array Form, deshalb schreibe ich folgendes:</p>
<pre><code>std::vector&lt;unsigned int&gt;vec;
.
.
.
cl::Buffer buffer = cl::Buffer(context,
                             CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR,   
                             vec.size()*sizeof(cl_uint),
                             &amp;vec.front(),&amp;err);
</code></pre>
<p>Das klappt auch ganz gut. Jedoch wenn ich spaeter die Daten wieder abholen moechte und in den selben vector kopiere, ist dann erlaubt.</p>
<pre><code>readback(buffer,vec.size()*sizeof(cl_uint), &amp;vec[0]);
</code></pre>
<p>Ich moechte die bearbeiteten Daten also im gleichen Vector speichern. Wenn ich jedoch die obere Zeile ausfuehre crasht das ganze Program. Mit einem Array klappt es.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2357686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2357686</guid><dc:creator><![CDATA[Microsoft]]></dc:creator><pubDate>Fri, 04 Oct 2013 05:43:11 GMT</pubDate></item><item><title><![CDATA[Reply to Schreib und Lesezugriff auf std::vector, z.B.  &amp;amp;vec[0] erlaubt on Fri, 04 Oct 2013 05:57:32 GMT]]></title><description><![CDATA[<p>Ja, das ist erlaubt. Crash muss an etwas anderem liegen. (Hast du den vector auf die richtige Größe resized?) Prinzipiell würde ich empfehlen btw:</p>
<pre><code>std::size_t size = ???;
std::vector&lt;cl_uint&gt; vec(size); // Warum nicht gleich den richtigen Typen? (cl_uint)
readback(buffer, vec.size() * sizeof(vec[0]), &amp;vec[0]);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2357688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2357688</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Fri, 04 Oct 2013 05:57:32 GMT</pubDate></item><item><title><![CDATA[Reply to Schreib und Lesezugriff auf std::vector, z.B.  &amp;amp;vec[0] erlaubt on Fri, 04 Oct 2013 08:10:34 GMT]]></title><description><![CDATA[<p>Wartest du auch, bis das schreiben fertig ist?<br />
Streich mal das CL_MEM_COPY_HOST_PTR raus, das hat bei mir schonmal Probleme gemacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2357701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2357701</guid><dc:creator><![CDATA[Marthog]]></dc:creator><pubDate>Fri, 04 Oct 2013 08:10:34 GMT</pubDate></item></channel></rss>