현재 매우 기본적인 셸로 작동해야하는 클래스에 대한 과제를 작성하고 있습니다. 거의 끝났지 만 execvp
과 매개 변수의 문자 배열 문제가 있습니다. 여기 내 코드의 간단한 미리보기가있다.C++ const char * to const char * const
//Split the left content args
istringstream iss(left);
while(getline(iss, s, ' ')){
v.push_back(s);
}
//Get the split string and put it into array
const char* cmd_left[v.size()+1];
for(unsigned int i = 0; i < v.size(); i++){
cmd_left[i] = v.at(i).c_str();
}
cmd_left[v.size()] = 0;
v.clear();
그리고 이것은 내 오류가
나는 문제가 내 문자 배열이 일정 데이터의 완전하지 있다는 것을 이해assign3.cxx:96:34: error: invalid conversion from ‘const char**’ to ‘char* const*’ [-fpermissive]
이다가 ...
execvp(cmd_left[0], cmd_left);
활용, 그래서 나는 본질적으로 const char*
에서 const char* const
으로 갈 필요가있다. 내가 const_cast
에 관해 읽었지만, 내가해야 할 일이 무엇인지 확신 할 수 없었다.
당신이 친절하다면, 문자 배열 배열이 제 기능을 수행하도록 올바르게 도와 줄 수 있습니까? 더 많은 코드를 게시해야한다면 알려주십시오.
감사
아, 정말 고마워요. 그것은 훨씬 더 의미가 있습니다. 또한, 나머지 코드는 문자열을 더 다루기 쉬운 형식으로 분리하는 것입니다. 어쩌면 더 나은 방법이있을 수 있지만 할당이 완료되어 내용이 만족 스럽습니다. – Zerocaliber
@ user2272616 환영합니다. – yngccc