How do I pass by reference char * foo[SIZE][SIZE] to a function and dereference it?
<p>I'm really having a difficult time understanding how to pass the address of a 2D array of char pointers to a function, and actually assigning a value to it.</p>

<pre><code>void fillWithStrings( 'pointer to foo'  ){ // How to do this part?
   for( int i = 0; i &lt; SIZE; i++ ) {
       for( int j = 0; j &lt; SIZE; j++ ) {
           char * temp = malloc( sizeof(char) * 3 );
           temp = "hi";
           *foo[i][j] = temp; // And this part?
       }
   }
}

int main(){
   char * foo[SIZE][SIZE];

   fillWithStrings( &amp;foo );

   return 0;
}
</code></pre>

<p>And yes, it is easier to fill <strong>foo</strong> in the scope where it was declared, but the point is, how to do it inside another function?</p>