标签: c
根据我的理解,有四个段分配内存,即.code,data,bss和heap。 我在哪个段中分配字符串文字的问题?
int main(){ char *ptr = "abcd"; }
在上面的程序中,字符串文字的内存被分配。在ptr被分配的地方?在堆栈?
ptr
答案 0 :(得分:0)
字符串本身将位于“数据”段中。对于许多实现,指针可能在堆栈上。但是不能保证这一点,它可能被分配给一个寄存器。或者可以优化所有代码,因为它没有副作用。