Есть ли проблемы с этим?
char* field = new char[2]; field[0] = 'S'; field[1] = '\0'; char c = *field;
всегда будет равно 'S'?
Никаких проблем с этим, c всегда будет 'S'.
Это совершенно нормально - и c всегда будет равно 'S'. Разыменование field, указатель типа char приведет к char.
field
char
В этом нет ничего плохого.Когда вы разыменовываете массив полей в строке
char c = *field;
, вы фактически запрашиваете значение первого элемента массива, в данном случае 'S'.
Проблема в том, что new char[2] не является синтаксисом языка C. Общая идея верна, хотя: c всегда будет 'S'.
new char[2]
c