私はコードのいくつかの単純な行で少し問題があります。私は私のメソッドを呼び出すために使用さ
次の行:ポインタの配列と参照渡し
char** paras = new char*;
inputLength = charUtils::readParameterFromConsole(paras, paraCount, stringBeginningIndex);
方法は、以下のようになります。「メソッドで
int charUtils::readParameterFromConsole(char** &inputs, int ¶Count, int &stringBeginningIndex) {
char input[BUFFER_STRING_LENGTH];
cin.getline(input, BUFFER_STRING_LENGTH);
if(strlen(input) > 0)
{
bool stringBeginning = false;
char* part = "";
string partString = "";
for(int i = 0; i < paraCount; i++)
{
if (i == 0)
part = strtok(input, " ");
else
part = strtok(NULL, " ");
inputs[i] = part;
}
} else
{
cout << "Error! No Input!" << endl;
}
cout << &inputs[0] << endl;
cout << inputs[0] << endl;
return strlen(input);
}
readParameterFromConsoleは正しい値ですが、呼び出し元のメソッドに彼らが上がりませんそれ以上の間は正しい。 私はコードをリファクタリングして新しいクラスを作成して以来、この問題に直面しています。
誰も私に助言を与えることはできますか?
は 'readParameterFromConsole(...)'の値を変更していますか? – JaredC
はい、方法の終わりに私は単純な出力を使って値をチェックします。すべて正しいですが、呼び出しメソッドはすべての値を失います。 Parasには私が説明できないいくつかの価値があります。 – CSchulz
不正な値を持つのは 'paras'ですか?または他のパラメータも? 'readParameterFromConsole()'がどのようにパラメータを変更し、どのように出力するのかを示すコードを投稿できますか? – JaredC