копирование c char указателя на не указатель char - PullRequest
3 голосов
/ 12 мая 2011

Есть ли проблемы с этим?

char* field = new char[2];
field[0] = 'S';
field[1] = '\0';

char c = *field;

всегда будет равно 'S'?

Ответы [ 4 ]

4 голосов
/ 12 мая 2011

Никаких проблем с этим, c всегда будет 'S'.

2 голосов
/ 12 мая 2011

Это совершенно нормально - и c всегда будет равно 'S'. Разыменование field, указатель типа char приведет к char.

0 голосов
/ 12 мая 2011

В этом нет ничего плохого.Когда вы разыменовываете массив полей в строке

char c = *field;

, вы фактически запрашиваете значение первого элемента массива, в данном случае 'S'.

0 голосов
/ 12 мая 2011

Проблема в том, что new char[2] не является синтаксисом языка C. Общая идея верна, хотя: c всегда будет 'S'.

...