Ответ
Пароль (чтобы удалить пост или файл)

151308    
16867038843840.jpg   (108Кб, 790x835)   Показана уменьшенная копия, оригинал по клику.
108
Сап программач. Вопрос такой - у меня массив большой и судя по sizeof() он весит +9000 Гб. Почему тогда IDE показывает что приложение весит 58 Мб. Что я делаю не так?

О задумке:
Пишу алгоритм с комбинаторикой. У меня будет 18 10^21 элементов из которых я буду выбирать наилучший. Позже думаю это поместить в вектор но пока надо разобраться с sizeof().

#include <iostream>

struct Element { int makaka,dvach,ruletochka,odnaT; };

int main(int xyi) {

unsigned long long SIZE = 18446744073709551615; //6
3 + 1 = 10^19

Element* arr[SIZE];

std::cout<< sizeof(arr)/8000000000 << " GB (byte) \n";


// чтобы приложение не завершалось
char input;
while(input != 'q')
std::cin >>input;


return 0;
}
>> 151322  
>>151308
Ты не можешь в стеке создать такой большой массив.
> Почему тогда IDE показывает что приложение весит 58 Мб
А сколько весит с массивом SIZE размером 1?
>> 151344  
>>151322
Столько же.
>> 151354  
>>151344
sigh
Ну дык, а что ты хотел?
>> 151386  
>>151354
Я хотел чтобы произошло переполнение стека.
>> 151396  
>>151308
> Element* arr[SIZE];
Зачем тебе массив указателей на структуры?
> Почему тогда IDE показывает что приложение весит 58 Мб.
Выделяешь на стеке. Сделай массив глобальным, сохрани все важное в других приложениях, перекрестись и скомпилируй, будет тебе приложение в 9000 ГБ.
>>151386
Для этого лучше вызывать main рекурсивно и печатать текущую глубину погружения.
>> 151422  
>>151396

>>перекрестись и скомпилируй, будет тебе приложение в 9000 ГБ.
Лол.

Я заблаговременно перекрестился и поэтому не буду даже пробовать!

Если бы я мог я бы вообще все не стеке сделал. Но похоже для этой задачи места не стеке не хватит. Поэтому приходится переходить на кучу. Колличество элементов

2,54 * 10^24






[Обновить тред]
Удалить пост
Пароль