Hello , first post here

I have been studying for my programming exam lately and I have encountered some problems that I hope you could explain to me. I have been doing exams from the last years to practise and here is the portion of the code that I would love some help with:

Code:
class Sentence
{
   string sent;

public:
   Sentence(const string &s):s(sent)
   {
     cout << "Constructor Sentence: " << sent << endl;
   }

   void print()
  {
    cout << sent ;
  }

   ~Sentece()
  {
    cout << "Destructor Sentence: " << sent << endl;
  }
};
Code:
class Document
{
  Sentence *sentences;
  int n;
  int max;

public:
  Document(int max)
  {
    this->max=max;
    n=0;
    cout << "Constructor Document: " << max << endl;
  }

  void NewSentence(const string &c)
  {
    if(n<max)
    {
      Sentence s(c);
      sentences[n++]=s;
    }
  }

  void print()
  {
    for(int i=0;i<n;i++)
    {
      sentences[i].print();
    }
    cout << endl;
  }

  ~Document()
  {
    cout << "Destructor Document: " << n << endl;
    delete []sentences;
  }
};
Code:
  void main()
  {
    Document doc(10);
    doc.NewSentence("abc. ");
    doc.NewSentence("def. ");
    doc.NewSentence("ghi. ");
    doc.print();
  }
In the exam, they clearly state that there is an important problem with the Document(int max) constructor and to solve the problem by doing necessary changes to it. I have no idea what's wrong with it, in fact, I compiled the program and the output was this:

Constructor Document: 10
Constructor Sentence: abc

Then, the programs shuts down for some reason. Is this related to the constructor?

Thanks for your time,
Pancake