Я немного запутался со следующим даным в реализации:Марков цепи. Реализация добавить метод
void add(char *prefix[NPREF], char *suffix) {
State *sp;
sp = lookup(prefix, 1);
//addsuffix(sp, suffix);
printf("size of prefix %d",&prefix);
printf("size of prefix %s", prefix + 1);
printf("size of prefix %d \n", &prefix+1);
for (int i = 0; i < NPREF; i++)
printf("%s \n" , prefix[i]);
printf("memmove \n");
memmove(prefix, prefix + 1, (NPREF - 1) * sizeof(prefix[0]));
prefix[NPREF - 1] = suffix;
for (int i = 0; i < NPREF; i++)
printf("%s \n", prefix[i]);
}
mmemove (префикс, префикс + 1, (NPREF - 1) * SizeOf (префикс [0]));
Таким образом, префикс является указателем типа char. В этом выражении префикс + 1 является ссылкой на следующий символ в массиве, не так ли?
Как это работает в правильном направлении? Я читал о memmove и читал о указателях, но не мог исследовать это поведение функции add для себя.
Е ("размер префикса% D", & префикс); неверно – 4pie0
Я просто пытаюсь получить ответ. Пожалуйста, не заботьтесь о моих функциях printf. Вопрос не в этом. –