If we allocate an object of size 1 as below

```
int *arr = new int[1];

```

Should we delete the object using `operator delete[]` or `operator delete`?

The reason I am concerned is if the compiler would be smart enough to convert the statement as a single element allocation `int *arr = new int` which would cause calling `operator delete[]` UB.

User Case:

I have a pointer, which I would end up allocation in a varied ways but would finally like to get it deleted. So was wondering, for single element allocation, if I consistently use `int *arr = new int[1]` can I consistently and safely use `operator delete[]`

**Note**

Can you please refer me back to the standards to support your answer?