c++ - 嵌套循环问题中的变量分配

标签 c++ loops stack

因为 obj,playingCard 对象是在嵌套的 for 循环中创建的,这是否意味着在第二个 for 循环完成后,obj 每次都从堆栈中释放?

还有一个小问题, 编译器是否使用堆栈(类似于递归)来跟踪循环和嵌套循环?

<p></p>

    for(int c = 0;c<nElems;c++) {
    for(int z = c + 1;z<nElems;z++) {
            playingCard obj;


        }
    }

最佳答案

每次迭代都会构造和解构它。

然而,在堆栈上,分配的概念(至少对于 VS 和 GCC)更加模糊。由于堆栈是一个连续的内存块,由编译器预先管理,因此没有像堆分配(新建/删除或 malloc/free)那样分配和释放的真正概念。编译器在堆栈上使用它需要的内存,稍后简单地回滚指针。

关于c++ - 嵌套循环问题中的变量分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1129191/

相关文章:

Java Stack peek 方法显示 0 而不是正确的数字

java - PrefixtoPostFix 堆栈中的 StringIndexOutOfBoundsException (Java)

linux - 当线程堆栈使用的内存被释放时

c++ - 在 C++ 中使用 freopen 打开多个文件

c++ - 如何重定向在 C++ 中读取 bash 脚本的输出?

python - Pybind11:从 C++ 端创建并返回 numpy 数组

java - 循环、get/set 方法和多个类,天啊

Javascript 超时循环将多行保存到 Parse.com

c++ - 简单的 C 风格结构化输入的 Spirit Qi 解析问题

objective-c - 遍历数组并 append 到 Objective-C 中的字符串