如果我有如下的主函数:
int main(int argc, char* argv[])
{
return 0;
}
需要释放argv吗?我们可以释放argv吗?是否应该释放argv?
需要释放 argv 嘛?
不需要。
我们可以释放 argv 吗?
不行。虽然语法上被接受,但这将导致未定义的行为(可能会出现运行时错误)。argv
指针数组的内存管理遵循由操作系统(ABI 绑定)管理进程入口点 (main()
) 而非 main()
客户端定义的原则。
我们应该释放 argv 吗?
不用,因为你没有分配它,所以不需要释放。
delete argv;
是未定义行为。 - πάντα ῥεῖstrdup
分配了内存,否则不要释放内存。 - Weather Vanestrdup
像 malloc
一样是显式的分配。 - Some programmer dude