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