从函数printf(“Hello world”)调用时,哪个内存段是“Hello world”?

时间:2017-04-10 13:00:19

标签: c memory-management

我认为它放在堆栈中,因为字符串“Hello world”是函数 printf 的参数?

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

1 个答案:

答案 0 :(得分:1)

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

看看这些讨论: