【发布时间】:2025-11-22 05:35:02
【问题描述】:
我有这个代码:
std::vector<std::string> args_ {"./test_script.sh"};
pid_t child_pid = fork();
switch (child_pid)
{
case 0:
{
// Child process
char ** args = new char*[args_.size() + 1];
for(size_t i = 0; i < args_.size(); ++i){
args[i] = new char[args_[i].size() + 1];
strcpy(args[i], args_[i].c_str());
}
args[args_.size()] = NULL;
execv(args[0], const_cast<char**>(args));
}
不释放分配的内存可以吗?因为子进程最终将结束并且操作系统将回收内存?如果我还是想释放它,我该怎么做?
谢谢,
【问题讨论】:
标签: c++