分类：电脑/网络-程序设计-C/C++
问题：内存分配问题C++中函数voidmax(){inti;}这个的内 
C++中 函数void max() {    int i;}这个的是在编译时分配还是在运行时跑到这个函数体内才分配，在<<C++ Primer>>中，刚开始所除了new之外都是在编译时分配，但讲到生命期的时候说以上情况是运行时分配，哪位大侠支招，谢谢
回答：你的那个是运行时分配，理由很简单：
这个变量是在函数中调用的，所以该变量只有在运行时出现在程序的栈中(Stack)。
另外编译并不存在分配这一动作，而只能计算出变量和函数的内存相对位置。
编译时能够决定相对位置的只有全局变量，静态变量或者函数入口，而动态调用过程中的变量要么是在Stack中，要么是在Heap(堆，通常是用new 或者 alloc申请的存储变量)。