Начнем с того, что определение функции типа
void my_caller(name1)
проблематично, так как отсутствующий тип (раньше был устаревшим правилом) по умолчанию равен int
.Вы хотите, чтобы это было char *
.не int
.
Вам нужно изменить его на
void my_caller(char * name1) {....
Более того, вам нужно вызвать функцию как my_caller(name1);
, передача массива аналогична передаче указателя напервый элемент массива.
Кроме того, вы не передаете адрес массива (проверьте типы, если вы в замешательстве) при вызове функции.
Тем не менее, внутри myFunction()
область видимостиi
ограничен только циклом for
, но вы хотите использовать его за пределами области действия (для завершения с нулем), поэтому вам нужно объявить i
в области действия функционального блока.
Мораль истории: включите настройки предупреждения / ошибки компилятора и обратите пристальное внимание на сообщения, генерируемые компилятором.Они есть по какой-то причине.
Примечание. После внесения этих изменений код работает как положено .