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

前端之家收集整理的这篇文章主要介绍了将在何处进行C中字符串的内存分配前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对于下面给出的C语句,我想知道memmory分配将在何处进行.
char* ptr="Hello";//ptr is a automatic variable

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

解决方法

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

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

猜你在找的C&C++相关文章