gpt4 book ai didi

c++ - 这段代码有什么问题?

转载 作者:太空宇宙 更新时间:2023-11-04 05:45:03 24 4
gpt4 key购买 nike

我尝试使用这些参数调用 evecvp():

vector<string>subcommand;
void parse(char *str)
{
pid_t pid;
char *cmd1=(char *)malloc(sizeof(300));

cmd1=strtok(str," ");
while(cmd1!=NULL)
{
subcommand.push_back(cmd1);
cmd1=strtok(NULL," ");
}

subcommand.push_back('\0');
vector<char const*> v( subcommand.size() );
for( int i = 0; i < v.size(); ++i )
{
v[i] = subcommand[i].c_str();
}

fork();
if(pid==0)
execvp(subcommand[0].c_str(),v);

}

我收到此错误:

main1.cpp: In function ‘void parse(char*)’:
main1.cpp:80:34: error: cannot convert ‘std::vector<const char*>’ to ‘char* const*’ for argument ‘2’ to ‘int execvp(const char*, char* const*)’

尝试了所有类型转换的排列,但就是无法让它工作。有什么问题吗?

最佳答案

变量vvector<char const*>在声明中execvp(subcommand[0].c_str(),v); ,而 evecvp 的声明是 int execvp(const char*, char* const*) .

关于c++ - 这段代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18564341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com