微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将在何处进行C中字符串的内存分配

对于下面给出的C语句,我想知道memmory分配将在何处进行.
char* ptr="Hello";//ptr is a automatic variable

那么指针变量ptr将在堆栈上分配,但是这个字符串“Hello”将被分配到哪里.
它是在堆栈上还是在堆上?
那么初始化语句的内存分配怎么样呢
char ptr [] =“你好”;

解决方法

标准没有说(它不知道“堆栈”,“堆”等).但实际上答案是:两者都没有.字符串文字将存储在数据部分中,通常位于只读页面中.

作为旁注,正如Als在评论中提到的那样,尝试修改字符串文字是未定义的行为.

原文地址:https://www.jb51.cc/c/116716.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐