c/c++语言开发共享用const char指针分配的内存在哪里?


可能重复:
是在静态内存中创建的c ++中的字符串文字吗?
C ++字符串文字数据类型存储

在这段代码中:

const char * str = "hello world";

如果我理解正确,指针是4或8个字节,我想这将在堆栈上分配。 但分配和存储“hello world”的内存在哪里?
或者str指向什么?

    它没有分配。 它通常存储在程序的代码段或堆栈中。这取决于编译器。 无论哪种方式,它都指向以null结尾的字符数组。

    Essentailly,编译就像你写的那样:

     const static char helloworld[12] = {'h', 'e', 'l', 'l', 'o',' ','w', 'o', 'r', 'l', 'd', ''}; const char * str = helloworld; 

    该数组通常位于内存的某些只读部分,可能位于可执行代码附近。

    根据定义的位置,str将位于堆栈或全局内存空间中。

    C没有堆栈或堆。 C表示"hello world"是一个字符串文字,字符串文字具有静态存储持续时间

      以上就是c/c++开发分享用const char指针分配的内存在哪里?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/518805.html

      (0)
      上一篇 2020年12月4日
      下一篇 2020年12月5日

      精彩推荐