当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《是否需要释放(或删除)在C中传递给main的参数?》经验,为你挑选了2个好方法。

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

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

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



1> 小智..:

是否需要解除分配argv?

没有.

我们可以解除分配argv吗?

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

我们应该解除分配argv吗?

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



2> Jay..:

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


...除了`strdup`之类的函数已经分配了内存.
这有点过于简化了.
@WeatherVane我会认为`strdup`是一个明确的分配,就像`malloc`(它就是这样).
推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有