你有一个字符串文字"I didn't malloc..."位于只读内存中的某个位置(确切地说是实现定义的位置),它由指针指向p.
需要注意的重要一点是,任何更改此字符串文字的尝试都将导致未定义的行为.
实际上在C++中,不推荐使用它来声明字符串文字.
所以在C++中你应该有一个const限定符,如:
const char *p = "I didn't malloc...";
Run Code Online (Sandbox Code Playgroud)
这是一个字符串文字.标准不知道"堆栈","堆"等 - 这些是实现细节.所以没有"标准"的位置.
但通常它不在堆栈上.它位于一个只读区域text.它并不" 类似于静态数组的分配方式 ".