pra*_*jul 6 c memory-management heap-memory stack-memory
对于下面给出的C语句,我想知道memmory分配将在何处进行.
char* ptr="Hello";//ptr is a automatic variable
Run Code Online (Sandbox Code Playgroud)
那么指针变量ptr将在堆栈上分配,但是这个字符串"Hello"将被分配到哪里.它是在堆栈上还是在堆上?那么初始化语句的内存分配如char ptr [] ="Hello";
cni*_*tar 12
标准没有说(它不知道"堆栈","堆"等).但实际上答案是:两者都没有.字符串文字将存储在数据部分中,通常位于只读页面中.
作为旁注,正如Als在评论中提到的那样,尝试修改字符串文字是未定义的行为.