title: invalid use of void expression in c printf
body: <p>I am studying c.
  I have this struc:</p>
  
  <pre><code>typedef struct mystuff
  {
      char* name;
      int      val;
  }MyStuff;
  </code></pre>
  
  <p>In main I call:</p>
  
  <pre><code>MyStuff fruit1 ={"watermellon", 1};
  </code></pre>
  
  <p>I pass data to insertLifo:</p>
  
  <pre><code>insertLifo(myQueue, &amp;fruit1);
  </code></pre>
  
  <p>This is the function</p>
  
  <pre><code>bool insertLifo(LifoQueue queue, void* data)
  </code></pre>
  
  <p>Inside the function I want to print the data in order to debug:</p>
  
  <pre><code>printf("insertLifo()  %s \n", *data);
  </code></pre>
  
  <p>I get the following error:</p>
  
  <pre><code>MemAlloc.c: In function ‘insertLifo’:
  MemAlloc.c:42:32: warning: dereferencing ‘void *’ pointer [enabled by default]
    printf("insertLifo()  %s \n", *data);
                                  ^
  MemAlloc.c:42:2: error: invalid use of void expression
    printf("insertLifo()  %s \n", *data);
    ^
  </code></pre>
  
  <p>I have tried:</p>
  
  <pre><code>printf("insertLifo()  %p \n", (void*)*data);
  </code></pre>
  
  <p>and other ways.</p>
  
  <p>I want to understand fully how to use pointers</p>