其中内存为c中的初始化char指针分配

时间:2014-06-04 09:59:41

标签: c

根据我的理解,有四个段分配内存,即.code,data,bss和heap。 我在哪个段中分配字符串文字的问题?

int main(){
    char *ptr = "abcd";
}

在上面的程序中,字符串文字的内存被分配。在ptr被分配的地方?在堆栈?

1 个答案:

答案 0 :(得分:0)

字符串本身将位于“数据”段中。对于许多实现,指针可能在堆栈上。但是不能保证这一点,它可能被分配给一个寄存器。或者可以优化所有代码,因为它没有副作用。