[英]Memory is allocation : heap or stack?
#include <iostream>
using namespace std;
struct number
{
int value;
int pos;
public:
number(int a,int b)
{
value=a;
pos=b;
}
};
int main() {
// your code goes here
number(1,2);
return 0;
}
在這種情況下,在哪里為number(1,2)
分配內存? 在堆還是堆棧上? 我們如何驗證它?
除了幾個C ++標准庫函數之外,C ++沒有堆棧或堆的概念。
有些人將分配給new
東西等同於堆,而將其他事物等同於堆棧 。 但是static
存儲和其他零碎的東西使粗略的分類變得混亂。
在您的情況下number(1, 2);
是一個匿名臨時文件,具有自動存儲期限。 一個好的編譯器可能會注意到匿名臨時結構的構建或銷毀沒有副作用,因此可以將其從已編譯的二進制文件中完全刪除。 因此,第三種選擇- 根本沒有記憶 -在我看來。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.