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. Wrtiting字符串內存流 - 指向字符串的指針
- 2. 函數指針存儲在哪裏?
- 3. 指針指向在C的字符串指針數組++
- 4. 指向字符串指針的數組
- 5. 指向字符串的指針陣列
- 6. 指針,指向函數的字符串
- 7. 傳遞指向字符串的指針
- 8. 指向字符串的指針
- 9. 指向字符串的指針
- 10. 使用指向字符串的指針初始化指向字符串中的字符的指針
- 11. 指針數組存儲字符串c
- 12. 二維指針存儲字符串
- 13. 在字符指針中存儲字符
- 14. 設置後幀指針指向哪裏?
- 15. 指向字符的指針
- 16. 指針指向字符串和STRCMP
- 17. C++,SQLite - 指向字符串的指針的指針
- 18. Where /指針指向的字符串如何存儲在文件中?
- 19. 指定字符串指向字符指針
- 20. 指向字符串的指針無法更改字符
- 21. 使用指針指向字符串中的某些字符
- 22. 帶指針的反向char字符串
- 23. 字符串數據存儲在哪裏?
- 24. MVC在哪裏存儲字符串
- 25. 複製字符串指針,指針
- 26. 如何將字符串存儲到字符指針?
- 27. 指針變量的大小被存儲在哪裏?
- 28. 在向量中存儲指向auto_ptr的指針
- 29. 傳遞指向字符串的指針,不兼容的指針類型
- 30. C - 指向返回字符串函數的指針函數的指針數組
'void main()'! – Marlon
例如,在gcc + linux環境下,「hello」位於'.rodata'部分。 – Stan