title: List of char* in C++
body: <p>I have a function that prints all the clients connected at a server.I want to put all clients in a list of char ( list lst ) because i need them in other functions.When i want to iterate over the list lst and print the elements appears something like " $@ ".I don't understand why.
  These are the functions:</p>
  
  <pre><code>void get_clients_list(){
      int dim,i = 0,n;
      char buff[255];
  
      bzero(buff,sizeof(buff));
  
      recv(srv_fd,buff,sizeof(buff),0);
  
      dim = atoi(buff);
  
      printf("\t%d clients available:", dim);
      printf("\n");
  
      while(i &lt; dim){
          memset(buff, 0, sizeof(buff));
          recv(srv_fd, buff, sizeof(buff),0);
          if(n &lt; 0){
              error("ERROR reading from socket");
          }
          lst.push_back(buff);
          printf("\t\t%s", buff);
          printf("\n");
          i++;
      }
  }
  </code></pre>
  
  <p>And here is how i iterate over the list lst:</p>
  
  <pre><code>get_clients_list();
  iter = lst.begin(); 
  while(iter != lst.end()) {
      iter ++;
      printf("clients:");
      printf("%s \n",iter);
  }
  </code></pre>
  
  <p>Why it doesn't print the clients and only appears some hieroglyphs?</p>