Привет, я видел это Maximum size of local array variable, но я хочу знать, почему это нормально, если массив задан как глобальный, а не нормально, если он приходит после основного.переменная локального массива exc плохой сегмент и локальный или глобальный сегмент?
И еще один вопрос в отношении: Хорошая практика иметь большие объекты памяти, которые определены в a.cpp и объявлены в a.hpp с помощью extern? Или лучше работать с большой памятью, определенной в локальной фильтрации, но определяемой как векторный или новый или malloc и передавая их в аргументах fonction.
Это видеть мой опыт, это те вопросы, которые я должен решить ...
Спасибо
#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