Can't find my Memory Leak : <p><strong>2 Problems:</strong></p>

<ol>
<li>I ran valgrind on this program an lost around 400 bytes, but I don't know what I did wrong.</li>
<li>For some reason, upon the FIRST (and only the first) initialization of a student object (<code>roster[i]</code> when <code>int i = 0</code>), the loop is only allowing me to pass two parameters into my constructor. I know it sounds strange but the first loop invocation is different from the others.</li>
</ol>

<h1>HEADER</h1>

<pre><code>#include&lt;iostream&gt;
#include&lt;string&gt;

using namespace std;

class Student{

public:
Student();
Student(string ln, string fn, string cn) {setLast(ln);setFirst(fn);setCourse(cn);}
void showInfo(){cout &lt;&lt; firstname &lt;&lt; " " &lt;&lt; lastname &lt;&lt; " in " &lt;&lt; coursename &lt;&lt; endl;} 

protected:
void setLast (string l){lastname = l;}
void setFirst (string f){firstname = f;}
void setCourse (string c){coursename = c;}
string firstname;
string lastname;
string coursename;
};
</code></pre>

<h1>MAIN</h1>

<pre><code>int main(){

Student **roster;
int num;
cout &lt;&lt; "how many?";
cin &gt;&gt; num;
roster = new Student*[num];
string l,f,c;

for (int i = 0; i &lt; num; i++){
  cout &lt;&lt; "\nenter last, first, course: ";
  getline(cin, l);
  getline(cin, f);
  getline(cin, c);
  roster[i] = new Student(l, f, c);
  roster[i]-&gt;showInfo();
}
delete [] roster;
};
</code></pre>
