我有一些簡單的代碼行的小問題。
以下行我習慣叫我的方法:指針和呼叫參考數組
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是價值觀正確,但在調用方法,他們AREN」不再糾正。 自從我重構代碼並創建一個新類以來,我正面臨着這個問題。
任何人都可以給我一個建議嗎?
是否'readParameterFromConsole(...)'更改值? – JaredC
是的,在方法結束時,我使用一個簡單的輸出來檢查值。這一切都是正確的,但調用方法失去了所有的價值。 Paras有一些我無法解釋的價值觀。 – CSchulz
它只是「paras」的值不正確嗎?或者其他參數呢?您可以發佈代碼以顯示'readParameterFromConsole()'如何修改參數以及如何輸出值? – JaredC