在某处偶然发现了这个面试问题,
在 C 中,
给定一个变量x
,你如何知道该变量的空间是分配在栈上还是堆上?
(有什么方法可以通过编程方式找到它,而不必通过符号表等?查找空间是在堆栈还是堆中分配是否有任何实际意义?)
最佳答案
不,不是一般的。
你知道 gcc -fsplit-stack
?
由实现决定是分配一个连续的堆栈还是一个堆栈,其中 block 与内存中的堆 block 交错。祝你好运,当后者被拆分时,弄清楚是为堆分配了 block 还是为堆栈分配了 block 。
关于c++ - 如何查找变量是在堆栈还是堆中分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13719563/