-3

次のコードを関数に入れたいです:(コードは完全ではありませんが、明確になっているはずです)

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

コードは1つの関数で正常に機能します。コードを2つの関数に分割すると、使用可能なデータが得られませんでした。

誰かが私を助けてくれたらありがたいです。これ以上ライブラリを使いたくありません。

4

3 に答える 3

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

これ以上ライブラリを使用したくありません。

心配しないでください。私のコード サンプルは標準ライブラリのみを必要とします。

于 2012-09-21T11:17:54.233 に答える
1

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);
}
于 2012-09-21T11:19:49.140 に答える
1

char *parsedData[SEPERATOR]; なんで?

charC++でポインターの生の配列を使用する必要があるのはなぜですか?

std::vector<std::string> a を使用して、悲惨さと絶望の全負荷を惜しまないのはなぜですか。

于 2012-09-21T11:10:50.273 に答える