title: Conditional jump or move depends on uninitialised value
body: <p>I have a problem with this bit of my code : </p>
  
  <pre><code>unsigned long me_hash(MEntry *me, unsigned long size){ 
      unsigned long hashval=0; 
      int i=0;
      for(i=0; me-&gt;surname[i];i++) hashval +=me-&gt;surname[i] + 28 * hashval;; 
  
      for(i=0; me-&gt;surname[i];i++){
        if(me-&gt;postcode[i]) { 
          hashval += me-&gt;postcode[i] + 28 * hashval;
        }
      }
      hashval += me-&gt;house_number;
      return (hashval%size);
  }
  </code></pre>
  
  <p>The message which I get when I run Valgrind is </p>
  
  <pre><code>==4480== Conditional jump or move depends on uninitialised value(s)
  ==4480==    at 0x8048EB7: me_hash (mentry.c:66)
  ==4480==    by 0x8048B3E: ml_lookup (mlist.c:91)
  ==4480==    by 0x80488D2: main (finddupl.c:43)
  ==4480== 
  </code></pre>
  
  <p>I don't know how to fix this. Could you help me?</p>