Вы не можете вызывать delete в этом фрагменте кода
MyObj testObj;
testObj.makeArray();
delete testObj;
, поскольку testObj не является указателем, который был назначен адресом памяти, который был выделен с помощью оператора new.
Вам необходимо добавить в определение класса хотя бы инициализатор и деструктор
class MyObj {
private:
uint8_t *arrayPtr = nullptr;
public:
~MyObj() { delete [] arrayPtr; }
void makeArray();
};
Обратите внимание на то, что либо вы должны определить конструктор копирования и оператор назначения копирования как удаленные, либо вы должны явно определить их.
Также имейте в виду, что функция makeArray небезопасна. Если пользователь вызовет его во второй раз, произойдет утечка памяти, поскольку ранее выделенная память не будет удалена.
И у вас нет массива в качестве члена данных класса. У вас есть указатель. Этот указатель будет освобожден из стека вместе с объектом, содержащим указатель. Однако динамически размещенный массив не будет освобожден без вызова оператора delete [].