Мне дали этот школьный проект. Я должен отсортировать по алфавиту список предметов по чешским правилам. Прежде чем копать глубже, я решил проверить это на матрице 16 на 16, поэтому я сделал это:
typedef struct {
wint_t **field;
}LIST;
...
setlocale(LC_CTYPE,NULL);
....
list->field=(wint_t **)malloc(16*sizeof(wint_t *));
for(int i=0;i<16;i++)
list->field[i]=(wint_t *)malloc(16*sizeof(wint_t));
В другой функции я пытаюсь назначить символ. Как это:
sorted->field[15][15] = L'C';
wprintf(L"%c\n",sorted->field[15][15]);
Все хорошо. Чар напечатан. Но когда я пытаюсь изменить его на
sorted->field[15][15] = L'Č';
Это говорит: посторонние символы в константе широких символов игнорируются. (Xcode) И часть печати пропускается. Файл main.c находится в UTF-8. Если я попытаюсь напечатать это:
printf("ěščřžýááíé\n");
Он печатает это как написано. Я не уверен, стоит ли мне выделять mem с помощью wint_t или wchar_t или я делаю это правильно. Я проверил это с обоими, но ни один из них не работает.