char * - 作为参数的阵列

时间:2012-09-21 11:06:55

标签: c++ arrays multidimensional-array parameters function-pointers

我想将以下代码放在一个函数中:(代码不完整,但我认为应该很清楚)

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 个答案:

答案 0 :(得分:1)

char *parsedData[SEPERATOR];为什么?

为什么需要在C ++中使用指向char的原始指针数组?

你为什么不只使用std::vector<std::string>并为自己节省一大堆苦难和绝望。

答案 1 :(得分:0)

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;
}
  

我不想再使用其他图书馆。

别担心,我的代码示例只需要标准库。

答案 2 :(得分: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);
}