Иногда я делал опечатку в одном месте кода моей программы:
int a = 10;
char* b = new char(a);
Ошибка очевидна: я написал () вместо []. Странно то, что ... код скомпилирован нормально, в отладчике все нормально. Но скомпилированный .exe вне отладчика вылетал через мгновение после выполнения функции с этими строками.
Действительно ли вторая строка кода законна? И если да, то что это значит для компилятора?