Аватар для Lyosha12
41 / 41 / 11
Регистрация: 02.04.2016
Сообщений: 313

Почему нельзя выделить статически кусок в ~100 MB?

25.11.2016, 20:19. Показов 2868. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
using namespace std;
enum {
    length = 256,
    count = 50
};
struct Town {
    char name[length] = {};
 
    int nStadium;
    struct {
        char type[length] = {};
        char track[length] = {};
        int nGames;
        char games[count][length] = {};
        int capacity;
    } stadiums[count];
 
    int nPool;
    struct {
        int size;
        int nGames;
        char games[count][length] = {};
    } pools[count];
 
    int nGym;
    struct {
        char type[length];
        int nGames;
        char games[count][length] = {};
    } gyms[count];
};
 
int main() {
    int nTowns;
    Town towns[count];
 
    cout << sizeof(towns);
    return 0;
}


При попытке запустить программу в дебаге, среда ловит ошибку сегментации, на функции main (CLion, MinGW, Windows 7).

Объясните пожалуйста, почему, при наличии 4 GB памяти, это происходит? Неужели память настолько фрагментирована, что целого куска в 100 MB не найдётся (один объект весит ~2 MB)?

Если действительно настолько память фрагментирована, то что можно сделать? (Кроме динамического распределения, его я ещё на рассматриваю).
Миниатюры
Почему нельзя выделить статически кусок в ~100 MB?  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.11.2016, 20:19
Ответы с готовыми решениями:

Почему нельзя банально выделить текст в паскале?
Почему нельзя банально выделить текст в паскале?

Как выделить кусок от символьного поля?
Здравствуйте, помогите, пожалуйста с проблемой: в ячейке А1 есть надпись , например &quot;поле 411&quot; Как выделить отсюда номер...

Выделить жирным кусок текста в MsWord.
Вообщем создаю таблицу в MsWord 2007. Дальше записываю в её ячейку текст. Так вот часть этого текста должна быть жирная, а другая...

42
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
28.11.2016, 11:55
Студворк — интернет-сервис помощи студентам
Убежденный,
В TestStack объект foo находится в стеке по адресу 'ebp-4'. В TestHeap в стеке по адресу
'ebp-8' лежит адрес foo, выделенного в куче. Подчеркиваю: адрес foo, а не адрес адреса foo.
Это противоречит твоему утверждению, что "локальная переменная, являющаяся указателем в кучу -
это адрес, по которому хранится адрес значения".
Не противоречит, именно это и имелось в виду - переменная преобразуется по сути в адрес (В данном случае ebp-i), следовательно, переменная, хранящая адрес является адресом адреса. Тем не менее, спасибо за примеры, не знал, хотя и не был уверен в обратном, что инструкции выполняются за одно и то же количество тактов несмотря на доп. разыменование.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
28.11.2016, 12:00
Цитата Сообщение от alex white Посмотреть сообщение
хотя и не был уверен в обратном, что инструкции выполняются за одно и то же количество тактов несмотря на доп. разыменование.
Кстати, я не возьмусь утверждать, что здесь быстрее - lea или mov.
Это пусть эксперты по ассемблеру подскажут.
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
28.11.2016, 14:36
Цитата Сообщение от Убежденный Посмотреть сообщение
что здесь быстрее - lea или mov.
на современных камнях, и то и другое один такт
на lea так же реализуют быстрое умножение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.11.2016, 14:36

В верстке совместимо с бутстрапом выделить большой кусок текста
Всем привет, Подскажите, пожалуйста, как можно в верстке совместимо с бутстрапом выделить большой кусок текста... Хочется слева от...

Почему нельзя командой copy скопировать системные файлы на дискету? Почему?
Пожалуйсат, подскажите, весь интернет перерыла, вот почему нельзя? что нельзя знаю, а по какой причине?

На рабочем столе нельзя перетаскивать ярлыки, нельзя копировать файлы и нельзя их вставлять
После загрузки компьютера вылезла ошибка, что кокойто файл windows неможет прочесть было предложено открыть программу CHKDSK, после этого ...

Почему не работает этот кусок программы?
Дана цепочка 00000101001010 она записана в массив, каждая цифра отдельный элемент. нужно инвертировать, не используя специальных...

Почему 100.6 - Int(100.6) = 0.59999999999999432
100.6 - Int(100.6) = 0.59999999999999432 Ну ведь не должно так быть?! 100.6 - Math.Floor(100.6) дает тот же результат.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
43
Ответ Создать тему
Опции темы

Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru