title: 2D Array as OpenCL kernel argument
body: <p>Pretty straight forward question: How would one use a 2D array as an OpenCL kernel argument?</p>
  
  <p>Common sense suggests using</p>
  
  <p><code>__kernel void main(__global &lt;datatype&gt; **&lt;name&gt;)</code>, </p>
  
  <p>however the compiler doesn't seem to be quite amused by this idea:</p>
  
  <p><code>kernel parameter cannot be declared as a pointer to a pointer</code>.</p>
  
  <p>Am I overseeing the obvious, or what exactly is it, I am doing wrong here?</p>
  
  <p><strong>Edit:</strong></p>
  
  <p>The hosts (c++) datastructure looks like this: </p>
  
  <p><code>vector&lt;vector&lt;Element&gt;&gt;</code>,</p>
  
  <p>where Element is a struct containing the indexes of the child nodes inside the very same array. Basicly pointers.</p>