找出存储在内存的哪一部分中的值?

Find out in which part of the memory a value is being stored?

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

例如在这段代码中:

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

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

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

  • 自动变量在栈上;

  • 非零初始化(全局)变量在数据段中;

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

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

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

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