是否需要释放(或删除)在C中传递给main的参数?

时间:2016-01-05 19:16:10

标签: c++ c

如果我有一个主要功能,如:

int main(int argc, char* argv[])
{
    return 0;
}

是否需要解除分配argv?我们可以解除分配argv吗?我们应该解除分配argv吗?

3 个答案:

答案 0 :(得分:8)

  

是否需要解除分配argv?

没有

  

我们可以解除分配argv吗?

没有。虽然在语法上被接受,但这会导致未定义的行为(可能是运行时错误)。 argv指针数组的内存管理强制操作系统(ABI绑定),它管理进程入口点(main())而不是main()客户端定义。

  

我们应该解除分配argv吗?

不,你没有分配它,所以你不需要解除分配。

答案 1 :(得分:6)

简单概念:如果你没有分配,你也不需要免费。 :))

答案 2 :(得分:2)

不,不是必需的。是的,你可以 - 就像'我能从特朗普大厦直接跳到地上吗?'。不,你不应该。