Массив указателей на char - C (СИ)
Формулировка задачи:
Подскажите, пожалуйста!
Есть функция:
Нужно проинициализировать для этой функции char *name[]
Компилятор упорно говорит : no matching function for call to 'fun(int, char*[3])'
Как это исправить?
void fun(int num, char *name[])
{
for(int i=0; i<num; i++)
std::cout<<name[i];
}int main()
{
char* pName[] = {"111", "222", "333"};
fun(3, name);
}Решение задачи: «Массив указателей на char»
textual
Листинг программы
#include <stdio.h>
void fun(int num, char *name[])
{
int i;
for( i=0; i<num; i++)
printf("%s", name[i]);
}
int main()
{
char* pName[] = {"111", "222", "333"};
fun(3, pName);
}
Объяснение кода листинга программы
В данном коде:
- Включается библиотека stdio.h, которая содержит функции для ввода-вывода данных.
- Определяется функция fun с двумя аргументами: целочисленным num и массивом char *name[].
- Внутри функции инициализируется переменная i как 0.
- Запускается цикл for, который выполняется до тех пор, пока i меньше num.
- Внутри цикла происходит печать значения name[i] с помощью функции printf.
- После выполнения цикла, значение i увеличивается на 1.
- Функция fun заканчивается.
- В функции main инициализируется массив pName[] с тремя элементами:
111,222,333. - Вызывается функция fun с аргументами 3 и pName.
- Функция main заканчивается.