Передача указателя на символ в функцию: синтаксическая ошибка

Мой вопрос связан с моим предыдущим постом:

явная специализация: синтаксическая ошибка?

Я пытаюсь передать массивы указателей на символы в качестве аргумента функции (которую я позже включу в специализированную функцию из предыдущего поста), но не могу получить правильный синтаксис.

В рамках основной программы было заявлено следующее:

char c0[30] = { "see if this works" };
char c1[30] = { "functions" };
char c2[30] = { "explicit specialization" };
char *d[] = { c0, c1, c2 };

следующая строка печатает «функции», как я и ожидал:

cout << "test print d[1] " << d[1] << endl;

Следующий шаг — проверить, могу ли я вернуть массив символов, который я хочу вернуть, но мой синтаксис неверен. Следующее возвращает ‘s’ (из c0) вместо целого массива char:

вызов функции:

cout << "string compare is " << compare2(*d, 3);

объявление функции:

char compare2(char const arr2[], int n) {
char temp;
temp = arr2[0];

return temp;

ценю помощь!

0

Решение

Ох, неважно. Я понял это: D

объявление указателя:

char *(d[]) = { c0, c1, c2 };

вызов функции:

cout << "string compare is " << compare2(d, 3);

определение функции:

char * compare2(char * const arr2[], int n) {
char * temp;
temp = *(arr2+2);

return temp;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]