char * -Array as Parameter

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

char *parsedData[SEPERATOR];

for(int i=0; i<SEPERATOR; i++)
{
parsedData[i]=tmp;
}

Функция должна выглядеть следующим образом:

int main()
{
char *parsedData[SEPERATOR];
Parser(WTString, parsedData);
}
int Parser(char *WTString, *parsedData[SEPERATOR])
{
for(int i=0; i<SEPERATOR; i++)
{
parsedData[i]=tmp;
}
}

Код отлично работает в одной функции. Разделив код на две функции, я не получил полезных данных.

Буду благодарен, если кто-нибудь сможет мне помочь. Я не хочу использовать дополнительные библиотеки.

-3

Решение

char *parsedData[SEPERATOR]; Зачем?

Почему вам нужно использовать необработанный массив указателей для char в С ++?

Почему бы тебе просто не использовать std::vector<std::string> и избавь себя от множества страданий и отчаяния.

1

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

C ++ способ сделать это будет выглядеть так:

#include <string>
#include <vector>

std::vector<std::string> Parser(const char *WTString)
{
std::vector<std::string> result;
for(std::size_t i = 0; i != SEPERATOR; ++i)
{
result.push_back(tmp); // whatever tmp is
}
return result;
}

Я не хочу использовать дополнительные библиотеки.

Не волнуйтесь, мой пример кода требует только стандартную библиотеку.

0

Если вы не хотите использовать stl, я предлагаю эту функцию:

int PointToDefault(char* target, char** parsedData, unsigned int count)
{
for (unsigned int i=0; i<count; i++)
{
parsedData[i] = target;
}
}

и этот звонок:

#define SEPERATOR 15
int main()
{
char tmp[] = "default string";

char *parsedData[SEPERATOR];
PointToDefault(tmp, parsedData, SEPERATOR);
}
0
По вопросам рекламы [email protected]