有没有办法使用Visual Studio 2015检查值在C内存(堆,堆栈,文本等)中的存储位置?
例如,在此代码中:
var tables = context.MyTables.SqlQuery("SELECT * FROM dbo.MyTable WITH(INDEX(MyIndex)) WHERE Type='FINISHED'").ToList();
找出存储数组名称,名称[0],静态名称等的位置
答案 0 :(得分:1)
你不需要检查它;你知道的:
自动变量在堆栈中;
非零初始化(全局)变量位于DATA段中;
零初始化(或未初始化)全局变量位于BSS中,扩展了DATA段;
动态分配的内存位于HEAP段中。
常量字符串可以在DATA段中,也可以在单独的(写保护的)TEXT段中,但这取决于编译器。
在您的示例中,name
将位于DATA段中,而常量字符串位于TEXT段中。