gpt4 book ai didi

c - 找出某个值存储在内存的哪一部分?

转载 作者:行者123 更新时间:2023-11-30 21:01:39 25 4
gpt4 key购买 nike

有没有办法使用 Visual Studio 2015 检查值在 C 内存中的存储位置(堆、堆栈、文本等)?

例如在此代码中:

char *day(int n) {
static char *name[] = {
"error", "monday", "tuesday", "wednesday",
"thursday", "friday","saturday", "sunday"
};

找出数组名称、名称[0]、静态名称等的存储位置

最佳答案

你不需要检查它;你知道:

  • 自动变量在堆栈上;

  • 非零初始化(全局)变量位于 DATA 段中;

  • 零初始化(或未初始化)的全局变量位于 BSS 中,它扩展了 DATA 段;

  • 动态分配的内存位于 HEAP 段中。

  • 常量字符串可能位于 DATA 段或单独的(写保护)TEXT 段中,但这取决于编译器。

在您的示例中,name 将位于 DATA 段中,常量字符串位于 TEXT 段中。

关于c - 找出某个值存储在内存的哪一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35102578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com