Переменная symbols
представляет собой массив char
.Он преобразуется в указатель на свой первый элемент &symbols[0]
, который будет иметь тип char*
.
Объявленные вами функции принимают первый параметр в качестве указателя на массив char
.Указатель на массив char
очень отличается от указателя на char
.
Решение состоит в том, чтобы функция принимала тот же тип данных, что и вы, т.е. указатель на char
, char*
.
У вас также есть несколько других проблем.Например, объявленные вами функции (buildTable
и printTable
) в настоящее время объявляются этим неправильным аргументом в качестве первого аргумента, а затем int
значением в качестве второго аргумента.Но это не то, как вы называете эти функции.Вам нужно объявить функции с их фактическими аргументами и вызвать их как объявленные.
На заметку по теме: Поскольку вы программируете на C ++, пожалуйста, не используйте массивы символов для строк, используйте std::string
вместо.Это спасет вас в долгосрочной перспективе.