If I declare class MyObj like so:

```
class MyObj: {
  private:
    uint8_t *arrayPtr;
  public:
    void makeArray();
}

void MyObj::makeArray() {
  arrayPtr = new uint8_t [10];
}

```

Then I call:

```
void func() {
  MyObj testObj;
  testObj.makeArray();
}

```

Now that func has run and completed and testObj can be forgotten about, does the 10 byte array get removed from the stack? Or do I need to create an explicit destructor for MyObj that tests for the existence of the array and calls the delete function on it?