내가 char *str = new char(16); 이렇게 했는데....

delete[] str;
를 해도 코드가 정상이고

delete str;
를 해도 코드가 정상이던데... 둘다 아무래도 괜찮은 문법이려나?

코드는 요게 끝임.
int main()
{
        char* str = new char(16);

        delete[] str; // 혹은 delete str;
        
        return 0;
}

설마 할당하고 아무 행동 없이 종료시켜서 그런건가?