1
A
回答
2
0
5
p是一个局部变量,通常驻留在堆栈上。
该字符串存储在编译器决定存储它的任何地方。通常,它既不是堆栈也不是堆,而是位于可执行映像的数据段的只读区域。
2
除非你的编译器的文档明确说void main()
是一个合法的签名,使用int main(void)
代替:
int main(void)
{
char *p = "hello";
return 0;
}
正是为p
内存和"hello"
分配将实施而变化的字符串。对于ELF和PE/COFF格式,p
的存储器将在main
的堆栈帧的内部,而"hello"
的存储器将为只读数据段(PE/COFF的.rdata
,ELF的.rodata
)。
相关问题
- 1. 函数指针存储在哪里?
- 2. Wrtiting字符串内存流 - 指向字符串的指针
- 3. 指向字符串的指针向量
- 4. 指针指向在C的字符串指针数组++
- 5. 指向字符串的指针阵列
- 6. 指向字符串的指针
- 7. 指向字符串C的指针
- 8. 传递指向字符串的指针
- 9. 指向字符串的指针数组
- 10. 指向字符串指针的数组
- 11. 指向字符串的指针
- 12. 指针,指向函数的字符串
- 13. 指向字符串的指针 - C
- 14. 指向字符串的指针
- 15. 投射指向int的指针/存储指向T的指针
- 16. 使用指向字符串的指针初始化指向字符串中的字符的指针
- 17. 指针数组存储字符串c
- 18. 二维指针存储字符串
- 19. 在字符指针中存储字符
- 20. x86堆栈指针指向哪里?
- 21. 设置后帧指针指向哪里?
- 22. 存储在指向C中多个字符串的指针数组中的单个字符串存在问题
- 23. 如何填充指针指向另一个数组中存储的字符串的字符指针数组?
- 24. 指向字符的指针
- 25. C指针,指向和字符串
- 26. 指针指向字符串和STRCMP
- 27. C++,SQLite - 指向字符串的指针的指针
- 28. Where /指针指向的字符串如何存储在文件中?
- 29. 指定字符串指向字符指针
- 30. 内存故障和指向字符串的指针
'void main()'! – Marlon
例如,在gcc + linux环境下,“hello”位于'.rodata'部分。 – Stan