内存分配和 **argv 参数[关闭]

2024-03-11

我知道我们使用这个论证的目的,我什至知道如何使用这个论证。

只有一件事我仍然不明白。程序如何为来自输入的字符串分配内存。 **argv 在程序开始时没有分配内存,不是吗?我本来以为会出现段错误,但它没有发生。

有谁知道这个内存分配是如何工作的?


C/C++ 运行时处理命令行参数并创建放置参数的内存区域。然后它会调用你的main()为您提供参数数量的计数以及指向存储参数的区域的指针。

因此,C/C++ 运行时拥有分配的内存区域,并且一旦您创建了内存区域,就由 C/C++ 运行时来释放该区域。main()返回或者如果使用其他 C/C++ 函数来停止程序,例如exit().

该过程起源于 Unix 下 C 的使用,并为 C++ 保留,作为 C++ 委员会试图维持的向后兼容性程度的一部分。

通常,当您的程序加载时,加载程序启动的入口点不是您的main()函数而是在 C/C++ 运行时中定义的入口点。 C/C++ 运行时执行各种初始化来设置 C/C++ 标准所说的在运行时将存在的环境。main()初始化完成后,C/C++ 运行时将调用该函数。

初始化期间的步骤之一是解析提供的命令行参数,然后将其提供给main()函数作为其函数参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

内存分配和 **argv 参数[关闭] 的相关文章

  • Asp.net core默认路由

    简化版Startup code public void ConfigureServices IServiceCollection services services AddMvc public void Configure IApplica
  • 从实体获取单列

    如何从查询中获取单个列而不是整个对象 我可以这样做来获取整个对象 但我想要的只是名称 IList
  • 在 Web 浏览器中禁用 F5 [重复]

    这个问题在这里已经有答案了 可能的重复 禁用浏览器的后退按钮 https stackoverflow com questions 961188 disable browsers back button 如何禁用浏览器上的 F5 刷新 htt
  • 通过另一个列表更新列表(linq)

    我有类 Data 的对象列表 如下所示 class Data int code string name DateTime date update 我还有另一个课程列表 例如 class RefCodes int old code int n
  • .pdbs 会减慢发布应用程序的速度吗?

    如果 dll 中包含 pdb 程序调试 文件 则行号将出现在引发的任何异常的堆栈跟踪中 这会影响应用程序的性能吗 这个问题与发布与调试 即优化 无关 这是关于拥有 pdb 文件的性能影响 每次抛出异常时都会读取 pdb 文件吗 加载程序集时
  • 具有多个谓词的 C++11 算法

    功能如std find if来自algorithmheader 确实很有用 但对我来说 一个严重的限制是我只能为每次调用使用 1 个谓词count if 例如给定一个像这样的容器std vector我想同时应用相同的迭代find if 多个
  • 如何查明 .exe 是否正在 C++ 中运行?

    给定进程名称 例如 程序 exe C 标准库没有这样的支持 您需要一个操作系统 API 来执行此操作 如果这是 Windows 那么您将使用 CreateToolhelp32Snapshot 然后使用 Process32First 和 Pr
  • 检测 TextBox 中的 Tab 键按下

    I am trying to detect the Tab key press in a TextBox I know that the Tab key does not trigger the KeyDown KeyUp or the K
  • 从点云检测平面集

    我有一组点云 我想测试3D房间中是否有角落 所以我想讨论一下我的方法 以及在速度方面是否有更好的方法 因为我想在手机上测试它 我将尝试使用霍夫变换来检测线 然后我将尝试查看是否有三条线相交 并且它们也形成了两个相交的平面 如果点云数据来自深
  • 将 2 个字节转换为整数

    我收到一个 2 个字节的端口号 最低有效字节在前 我想将其转换为整数 以便我可以使用它 我做了这个 char buf 2 Where the received bytes are char port 2 port 0 buf 1 port
  • 在 C++ 代码 gdb 中回溯指针

    我在运行 C 应用程序时遇到段错误 在 gdb 中 它显示我的一个指针位置已损坏 但我在应用程序期间创建了 10 万个这样的对象指针 我怎样才能看到导致崩溃的一个 我可以在 bt 命令中执行任何操作来查看该指针的生命周期吗 谢谢 鲁奇 据我
  • 如何对STL向量进行排序?

    我想排序一个vector vector
  • WinForms - 加载表单时如何使用 PaintEventArgs 运行函数?

    我试图理解图形 在 Graphics FromImage 文档中 它有这样的示例 private void FromImageImage PaintEventArgs e Create image Image imageFile Image
  • 测验;这个编译了吗?如果是的话它会返回什么(我知道答案)

    我最近发现这个错字 if name find string npos 显然开发者的意思是输入 if name find string npos 但令我惊讶的是发现错误甚至编译 Wall Werror 没有尝试过 pedantic 那么 咖啡
  • 用数组或向量实现多维数组

    我想使用单个数组或向量实现多维数组 可以像通常的多维数组一样访问它 例如 a 1 2 3 我陷入困境的是如何实施 操作员 如果数组的维数为 1 则 a 1 应该返回位于索引 1 处的元素 但是如果维数大于一怎么办 对于嵌套向量 例如 3 维
  • 如何调用与现有方法同名的扩展方法? [复制]

    这个问题在这里已经有答案了 我有这样的代码 public class TestA public string ColA get set public string ColB get set public string ColC get se
  • 时间:2019-03-17 标签:c#TimerStopConfusion

    我想通过单击按钮时更改文本颜色来将文本框文本设置为 闪烁 我可以让文本按照我想要的方式闪烁 但我希望它在闪烁几次后停止 我不知道如何在计时器触发几次后让它停止 这是我的代码 public Form1 InitializeComponent
  • 在二进制数据文件的标头中放入什么

    我有一个模拟 可以读取我们创建的大型二进制数据文件 10 到 100 GB 出于速度原因 我们使用二进制 这些文件依赖于系统 是从我们运行的每个系统上的文本文件转换而来的 所以我不关心可移植性 当前的文件是 POD 结构的许多实例 使用 f
  • Unity,c++ 本机插件字节数组不匹配

    在我的 C 本机插件中 我有一个调用 vector
  • 如何知道 HTTP 请求标头值是否存在

    我确信这很简单 但是却让我感到厌烦 我在 Web 应用程序中使用了一个组件 它在 Web 请求期间通过添加标头 XYZComponent true 来标识自身 我遇到的问题是 如何在视图中检查此组件 以下内容不起作用 if Request

随机推荐

  • 是否有用于阻塞 boost::asio TCP 连接的 boost::iostreams (双向)设备?

    我正在调查可移植的 C 库 阻止对文件系统和网络的 I O 访问 它looks like boost filesystem boost iostreams and boost asio将由他们三人共同完成这项工作 需要明确的是 我目前对异步
  • 在 Winforms (C#) 中使用 MVP 模式的后台工作程序

    我一直在尝试使用 MVP 模式重构应用程序的意大利面条代码 但现在我正在为此苦苦挣扎 具有调用 DoWork 方法 后台工作者 的按钮的表单 这是一个很长的操作 我的问题是 如果我将长操作从视图移到演示器中 那么如何将此操作的进度更改发送到
  • 在线更新C#程序

    问候 如果这个问题已经被问过 我很抱歉 我尝试过使用搜索功能 但找不到适合我情况的答案 我有一个真正简单的 C 表单应用程序 只有 1 个文件 一个 exe 我目前通过 4shared 分发了此内容 人们可以随意下载 然而 每次我对程序进行
  • Matplotlib 颜色图 – 为每个图形/线条/主题选择不同的颜色

    我创建了一个读取并绘制 txt 文件及其内容 数字 值 的脚本 每个 txt 文件位于不同的文件夹中 每个文件夹又代表数据来源的一个主题 这段代码工作正常 Python 读取每个 txt 文件并将 23 个单独的图形 线条绘制成一个图 Py
  • jQuery 验证代码如何工作

    我发现这个教程使用 jQuery 和验证插件来验证表单输入 请参阅此处的工作示例 http jsfiddle net nK7Pw http jsfiddle net nK7Pw 这似乎工作正常 但是我有一个问题 在html部分中 没有提到错
  • Rails 4 更新嵌套属性

    更新嵌套属性附加而不是更新有很多关系 我正在尝试使用 Rails 4 Update attributes Class Person
  • Xamarin 表单 MessagingCenter 取消订阅未按预期工作

    当我在应用程序中多次来回导航时 MessagingCenter Subscribe 内编写的功能会被多次调用 但每次在订阅之前 我都会在构造函数中取消订阅 如下所示 但它仍然不起作用 MessagingCenter Unsubscribe
  • 提交表单后JQuery发送post请求?

    你好朋友 这是我的代码 用于表单提交 然后发送帖子链接 但表单提交成功 然后不发送帖子链接 document getElementById pitch image path form submit function e post submi
  • 应替换现有类型,添加新类型

    我有一个基地std vector和一个std initializer list
  • C编码:只读取带小数的浮点数,拒绝整数和特殊字符

    我正在尝试用 C gcc 编写代码以仅接受带小数的浮点数并拒绝整数 特殊字符 字母数字条目 有效条目是 1 23 3 45 6 77 无效条目 abc e34 834ww 6 9 还有一些不是浮动的废话 这是我尝试过的 include
  • 如何获取 Rails 控制器中活动存储中存储的附件的 URL

    如何获取存储在 Rails 控制器的活动存储中的 has one 模型附件的 URL 因此 我可以将其作为完整链接作为 json 中的 api 发送 到目前为止 我已经尝试过以下方法 但每个方法都给出了不同的问题 current user
  • 组合两个 matplotlib 颜色图

    我想将两个颜色图合并为一个 这样我就可以使用一个cmap一个用于负值 另一个用于正值 目前 我使用屏蔽数组来完成此操作 并用一张图像绘制一张图像cmap以及另一个图像与另一个图像 结果是 有以下数据 dat np random rand 1
  • 使用 Clearcase 递归签入

    我想将一个目录和所有子目录签入到透明案例中 有具体的命令可以实现吗 目前我正在进入每个目录并手动检查每个文件 我会推荐这个问题 https stackoverflow com questions 33577 how do i perform
  • 如何在 JavaScript 中循环遍历 JSON 关联数组?

    我从服务器收到 JSON 响应 并且必须在 javascript 中循环遍历数组并获取值 但我似乎无法循环遍历它 数组的 JSON 响应如下所示 1 Schools 20 Profiles 31 Statistics 44 Messages
  • 在 Facelet 模板中包含非 Facelet 内容

    有没有办法将 html 文件的内容插入到 Facelet 模板中 Facelets 标签不起作用 因为它仅用于包含 Facelet 内容 换句话说 我正在寻找相当于 JSP include 指令的 Facelets 我可能不明白你需要什么
  • 如何等待一组异步回调函数?

    我的代码在 javascript 中看起来像这样 forloop async call returns an array to its callback 所有这些异步调用完成后 我想计算所有数组的最小值 我怎样才能等到他们所有人呢 我现在唯
  • TFS 电子邮件通知

    当我在 TFS 中添加错误 工作项 并将其分配给用户时 我希望向该用户发送一封电子邮件 此外 如果现有错误的 分配给 发生更改 我希望该用户收到一封电子邮件 当用户在 TFS 2008 中分配了更改的错误时 是否可以向用户发送警报 至少在
  • 指令在 Spray 中如何工作?

    我想了解 Spray 中的指令如何工作 根据文档 http spray io documentation 1 1 SNAPSHOT spray routing key concepts directives 指令的一般结构如下 name a
  • 通过WCF发送图像的有效方法?

    我正在通过从头开始编写 VNC 等自定义远程控制应用程序来学习 WCF LINQ 和其他一些技术 我创建它时考虑了三个主要目标 服务器将在应用程序级别 即无缝窗口 提供 远程控制 而不是完整的桌面访问 客户端可以选择服务器上运行的任意数量的
  • 内存分配和 **argv 参数[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我知道我们使用这个论证的目的 我什至知道如何使用这个论证 只有一件事我仍然不明白 程序如何为来自输入的字符串分配内存 argv 在程序开始时