你好,我已經看到了這個Maximum size of local array variable,但我想知道爲什麼這是好的,如果數組設置離子全局和不好,如果它後面的主。本地數組變量exc壞acces分段&本地或全局?
而關係中的另一個問題: 在a.cpp中定義大的內存對象並使用extern在a.hpp中聲明是否是一種很好的做法?或者更好地處理在本地函數中定義的大內存,但定義爲vector或new或malloc並將它們傳遞給函數參數。
這是看我的經驗,是這些問題,我必須解決......
謝謝
#include <iostream>
using namespace std;
#define N (10000000000000)
int sd[N];
int main() {
// int sd[N];
return 0;
}
當你有非常大的或未知大小的數組,你要利用堆。 – amanuel2
改爲使用'std:vector'。 –
您的本地變量的例程分配在堆棧上,預計相對較小。全局變量(過分簡化)分配在堆上,默認情況下這是一個更大的空間。您的變量也可以通過使用new()或malloc()使用本地例程中的堆空間進行分配,但是當函數退出時,用於引用這些變量的指針可能超出範圍,從而導致內存泄漏,除非您首先使用delete()或free()取消分配內存。 – mikeTronix