Итак, у меня есть эта функция, и у меня возникают некоторые странные ошибки, которые я не могу понять.Странные ошибки в указателе
void serialize_helper(huff *h, bits *history, char** a)
{
switch (h->tag) {
case LEAF:
char letter = h->h.leaf.c;
int arraynum = (int)letter;
a[arraynum] = bits_show(history);
putchar('\n');
return;
case NODE:
/* traverse left subtree */
bits_putlast('0',history);
serialize_helper(h->h.node.lsub,history, a);
bits_remove_last(history);
/* traverse right subtree */
bits_putlast('1',history);
serialize_helper(h->h.node.rsub,history, a);
bits_remove_last(history);
return;
default:
fprintf(stderr,"main.serialize_helper: bad tag\n");
exit(1);
}
}
Я получаю эту ошибку для простого определения переменного (из полукокса письма = ...;):
"huffenc.c: 18: ошибка: ожидается выражение перед 'полукоксом'"
Кроме того, компилятор действует как моя декларация «письмо» не существует: «huffenc.c: 19: ошибка:„буква“необъявленную (первое использование в этой функции)»
Почему мне не разрешено объявлять переменную там? Я думал, что это разрешено ... –
Вы компилируете в режиме C89? –