E2158 'delete' のオペランドは非 const ポインタでなければならない (C++)
ポインタでない変数を削除することは不正です。定数へのポインタを削除することも不正です。
例を示します。
const int x=10;
const int * a = &x;
int * const b = new int;
int &c = *b;
delete a; //不正 - 定数へのポインタの削除
delete b; //有効
delete c; //不正 - オペランドがポインタ型でない
//'delete&c' を使用してください