몇 줄의 간단한 코드에 약간의 문제가 있습니다.
다음 라인 내 메서드를 호출하는 데 사용 :포인터 배열과 참조에 의한 호출
char** paras = new char*;
inputLength = charUtils::readParameterFromConsole(paras, paraCount, stringBeginningIndex);
방법은 다음과 같습니다 : 방법 readParameterFromConsole에서
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); }
는 값이 정확하지만, 호출 방법에 그들은 때로 믿을 수 ' 더 이상 t correcy. 코드를 리팩토링하고 새로운 클래스를 만들 때부터이 문제에 직면하고 있습니다.
아무에게도 조언 해주실 수 있습니까? 당신이 inputs[i] = part
을 말할 때 part
가 strtok
로 다시 넘겨 input
에 대한 포인터이기 때문에
는'readParameterFromConsole (...)이'값을 변경합니까? – JaredC
예 및 메서드의 끝에서 간단한 출력을 사용하여 값을 확인합니다. 모든 올바른 있지만 호출 메서드를 모든 값을 느슨하게. Paras는 설명 할 수없는 몇 가지 가치가 있습니다. – CSchulz
단지'paras'가 잘못된 값을 가지고 있습니까? 아니면 다른 매개 변수도? 'readParameterFromConsole()'이 매개 변수를 수정하는 방법과 값을 출력하는 방법을 보여주는 코드를 게시 할 수 있습니까? – JaredC