前端之家收集整理的这篇文章主要介绍了
将在何处进行C中字符串的内存分配,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对于下面给出的C语句,我想知道memmory分配将在何处进行.
char* ptr="Hello";//ptr is a automatic variable
那么指针变量ptr将在堆栈上分配,但是这个字符串“Hello”将被分配到哪里.
它是在堆栈上还是在堆上?
那么初始化语句的内存分配怎么样呢
char ptr [] =“你好”;
标准没有说(它不知道“堆栈”,“堆”等).但实际上答案是:两者都没有.字符串
文字将存储在数据部分中,通常位于只读
页面中.
作为旁注,正如Als在评论中提到的那样,尝试修改字符串文字是未定义的行为.
原文链接:https://www.f2er.com/c/116716.html