title: How to initialize last item automatically in a struct array?
body: <p>I am passing an array to a function, and i am initializing it globally with some values.
  I am using empty string in end of array to determine the array length.</p>
  
  <p>Now, Is there some way to automatically initialize the array to have extra empty item in the end of it, so i have no chances to forget it from there? Just like the char[] works, it adds extra null to the end IIRC.</p>
  
  <p>Here is my code what im using now:</p>
  
  <pre><code>struct twostrings {
      string s1, s2;
  };
  
  twostrings options[] = {
      {"text1", "more text1"},
      {"text2", "more text2"},
      {"text3", "more text3"},
      {""}, // tells that the array ends here
  }
  
  int get_len(twostrings opt[]){
      int p = 0;
      while(1){
          if(opt[p].s1 == ""){
              return p;
          }
          p++;
          // now here is a possibility to go in infinite loop if i forgot the empty string.
          // currently i have a code here that checks if p &gt; 10000 and gives error message to me if i manage to forget that empty string in accident.
      }
      return p;
  }
  
  void dosomething(twostrings options[]){
      int len = get_len(options);
      for(int p = 0; p &lt; len; p++){
          // do stuff
      }
  }
  
  int main(){ // yes its not valid written main function. dont bother about it.
      dosomething(options);
  }
  </code></pre>