【问题标题】:Which memory segment is "Hello world" when called from function printf("Hello world")? [closed]从函数 printf("Hello world") 调用时,哪个内存段是“Hello world”? [关闭]
【发布时间】:2017-04-10 13:00:19
【问题描述】:

我认为它被放入 stack 是因为 string "Hello world" 是函数 printf 的参数?

如果我错了,有人可以给出并解释正确的答案吗?

【问题讨论】:

  • 你的研究有什么例子吗?顺便说一句,标题应该与需要包含示例的问题不同。 stackoverflow.com/help/mcve
  • 使用文本编辑器,我猜?如果我错了,请告诉我。
  • 什么是“内存的动态区域”?!
  • 你尝试过什么吗?从技术上讲,不能保证一个字节是最小的可用内存块,但实际上malloc(1024) 将分配内存来存储 1024 个字节
  • 为了详细说明我之前的评论,我不使用MS Paint进行编码......JS可以做到......

标签: c memory-management


【解决方案1】:

字符串字面量具有静态存储持续时间。通常它们存储在只读存储器中。它们通常进入称为 .rodata (linux) 或 .rdata (windows) 的部分。将字符串文字作为函数参数提供与预先将其定义为 const char *s = "Hello world" 的行为相同。

看看这些讨论:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 2012-01-04
    • 2014-10-15
    • 1970-01-01
    • 2023-04-11
    相关资源
    最近更新 更多