Форум программистов, компьютерный форум, киберфорум
Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.58/55: Рейтинг темы: голосов - 55, средняя оценка - 4.58
Эксперт по электронике
6789 / 3216 / 335
Регистрация: 28.10.2011
Сообщений: 12,554
Записей в блоге: 7

Дискуссия о распределении памяти в ОС

11.02.2021, 01:09. Показов 13923. Ответов 132
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Замабувараев Посмотреть сообщение
Картинку можно будет взять хоть миллион на миллион пикселей
Умножьте миллион на миллион и на 3. Узнаете сколько нужно памяти для хранения данных картинки.
Нужно 2793 ГБ. У вас установлено столько в компе?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.02.2021, 01:09
Ответы с готовыми решениями:

Работа со стеком на последовательном распределении памяти
1. Создание пустого стека 2. Добавление элемента на вершину стека 3. Удаление элемента с вершины стека Работу программы...

Реализация стека на массиве и динамическом распределении памяти
всем привет, дано такое задание: Используя стек, решить следующую задачу. Напечатать каждое слово текстового файла Т в обратном...

Реализовать процедуры работы со стеком на последовательном распределении памяти
Помогите кто может. Задание 1. На языке программирования Pascal реализовать процедуры работы со стеком на последовательном...

132
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
12.02.2021, 23:00
Студворк — интернет-сервис помощи студентам
Quiet Snow, это просто пример того что процесс может выделить памяти сколько ему нужно и работать с ней не смотря на то сколько у него установлено RAM. Тут нет никаких оптимизаций вообще, тут тупо массив от нулевого элемента и до конца забивается данными, т.е. когда физическая память кончается то система сначала одну страницу (4КБ) записывает в файл, а другую (4КБ) читает. По уму нужно делать это бОльшими регионами - это повысит быстродействие, но чудес не будет и все будет ограничено скоростью доступа к файлу.

Цитата Сообщение от Quiet Snow Посмотреть сообщение
Т.е. выходит что все эти вещи, если они нужны - нужно делать руками.
Зачем делать руками? Система уже предоставляет такой механизм. Более того она так работает сама. Ничего не нужно изобретать - спроецировали файл и работаем просто с адресами памяти, система сама позаботится о том когда подгрузить часть, выгрузить ненужное.

Цитата Сообщение от Quiet Snow Посмотреть сообщение
К слову сказать Pro_grammer, тоже таки прав, тут в проге маппинг организован руками
Какая разница? Ты думаешь память как-то по другому работает когда ты дергаешь VirtualAlloc? Оберни всю эту логику что я выше написал в функцию - возвращает такой же указатель на память. Просто в одном случае система страницы подгружает/выгружает в системный файл подкачки, в том примере что я скинул система выгружает в файл пользователя. Разницы нет.

Цитата Сообщение от Quiet Snow Посмотреть сообщение
Поэтому вполне возможно какие-то бенефиты во всём этом есть.
Конечно есть, при прямом чтении/записи файла данные проходят через буфера, при файл-маппинге этого не нужно память и есть буфер.
1
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
12.02.2021, 23:04
Цитата Сообщение от The trick Посмотреть сообщение
Можно и на 32 битах сделать
Так и на x64 не вышло
Уж извини, но это вообще не то, о чем я тут пишу.
Смотри, ты пишешь :
Цитата Сообщение от The trick Посмотреть сообщение
Ну вообще-то приложения работающие под виндой используют виртуальную память, а не физическую. Лимиты виртуальной памяти намного больше чем 2 ТБ на Win10.
Утверждаешь, что Винда сможет САМА (!) выделить память столько, сколько надо, независимо от физической оперативки.
Но выделить память напрямую у тебя не вышло, вот так:
Dim a(327680, 327680) As Byte
не 2ТБ, а всего 100ГБ.
Не умеет так Винда.
И ты решил схитрить, создал принудительно swap файл на моём HDD swap.map
Но вот облом, я запустил exe на диске, а там нету 100ГБ в наличии.
А я писал выше, что виртуальная память не берётся с Луны, она должна физически присутствовать в компьютере!
И чуда не вышло, израсходовав всю оперативку, ровно 16 ГБ, комп основательно затормозил, да так, что еле удалось вырубить через диспетчер задач.
1
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
12.02.2021, 23:26
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Утверждаешь, что Винда сможет САМА (!) выделить память столько, сколько надо, независимо от физической оперативки.
Да так и есть. И пример это показывает. Только не сколько надо, а сколько прописано в лимитах которые я скинул.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Но выделить память напрямую у тебя не вышло, вот так:
Dim a(327680, 327680) As Byte
А зачем мне так выделять? Так она не сможет выделится т.к. у тебя отключен файл подкачки, ты сам это и написал. Я выделил по типу того как это делают функции винды типа VirtualAlloc.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Не умеет так Винда.
Умеет ты читал что в мсдн написано? Будешь спорить с ними. Ок, я переубеждать не стану.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
И ты решил схитрить, создал принудительно swap файл на моём HDD swap.map
Схитрил? Я об этом написал еще выше:
Цитата Сообщение от The trick Посмотреть сообщение
Так я просто создал 100ГБ файл на диске и система отобразила мне его в виртуальное адресное пространство. Работа с этой памятью для меня прозрачна и не зависит от того сколько оперативной памяти у меня установлено и включен ли файл подкачки. По сути это и есть файл подкачки только мой собственный.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Но вот облом, я запустил exe на диске, а там нету 100ГБ в наличии.
Ну нет, в программе идет проверка дисков и если нет 100ГБ, то конечно облом, выделяется столько сколько есть. Чуда не будет. Но памяти выделится больше чем у тебя установлено оперативки (если конечно у тебя на ЖД места больше чем свободной оперативки, но для этого я и сделал сканирование дисков).

Цитата Сообщение от Pro_grammer Посмотреть сообщение
А я писал выше, что виртуальная память не берётся с Луны, она должна физически присутствовать в компьютере!
Нет ты утверждал что можно отключить как-то виртуальную память, потом стал говорить о том что при отключенном файле подкачки нельзя выделить виртуальной памяти больше чем установлено оперативной. Я же скинул пример в котором вместо системного файла подкачки (который может быть отключен), используется файл-маппинг и памяти может быть выделенно больше чем установлено оперативки.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
И чуда не вышло, израсходовав всю оперативку, ровно 16 ГБ, комп основательно затормозил, да так, что еле удалось вырубить через диспетчер задач.
Как раз-таки чудо случилось и твой комп израсходовав всю оперативку стал свопить данные в файл-маппинг. Для приложения же это происходило прозрачно, оно как писало в линейный массив - так и пишет. Ты же говорил что такое невозможно, ну и что теперь скажешь?

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Так и на x64 не вышло
Ну да, ну да. Если бы не вышло комп бы у тебя не затормозил как ты написал. Ладно я не буду доказывать тебе прописные истины, можешь остаться при своем мнении.
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
13.02.2021, 00:09
Цитата Сообщение от Pro_grammer Посмотреть сообщение
а там нету 100ГБ в наличии.
У меня тоже столько нету на диске, за всю свою жизнь у меня не было собственных прог, которые
реально сжирали бы даже 4 Гб, т.е. лимит 32 битной системы. Ну т.е. сделать то это легко можно,
но так чтобы этого требовала задача - такого не было. Хотя чисто теоретичеки можно было бы
табличными оптимизациями занять неестественное пространство, но это нерациональный расход,
пользователи за такое покусают.
Ну кстати согласись, у нас мало народу, кто сможет так лаконично объяснить про такие глубокие
вопросы, и не просто объяснить, а ещё и код показать. Так что Анатолию респект однозначно.
Вот никогда особо не задумывался об этом, но профи так или иначе лезут в эти аспекты, колупают.
По сути же это всё сделано для просто нормального управления памятью, т.е. назначать программам
корректно свободные куски, не таская их туда сюда(это бы сильно замедлило процессы выделения
и уничтожения памяти и требовало бы остановки всех процессов).

Добавлено через 14 минут
Цитата Сообщение от The trick Посмотреть сообщение
Зачем делать руками?
Чтобы не уходить в своп, кто знает что взбредёт винде и что она начнёт выгружать во все свопы.
Т.е. своя архитектура под задачу. Она не даст, конечно, обратиться ко всему этому пространству,
как файл маппинг, но если этого и не требуется - отработает значительно быстрее.

Цитата Сообщение от The trick Посмотреть сообщение
Quiet Snow, это просто пример того что процесс может выделить памяти сколько ему нужно и работать с ней не смотря на то сколько у него установлено RAM. Тут нет никаких оптимизаций вообще, тут тупо массив от нулевого элемента и до конца забивается данными, т.е. когда физическая память кончается то система сначала одну страницу (4КБ) записывает в файл, а другую (4КБ) читает. По уму нужно делать это бОльшими регионами - это повысит быстродействие, но чудес не будет и все будет ограничено скоростью доступа к файлу.
Да это понятно.
1
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
13.02.2021, 00:32
Цитата Сообщение от Quiet Snow Посмотреть сообщение
4 Гб, т.е. лимит 32 битной системы
Через PAE или AWE можно больше, до 64 ГБ на шиндоуз 2003.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
13.02.2021, 00:35
Цитата Сообщение от Pro_grammer Посмотреть сообщение
не 2ТБ, а всего 100ГБ.
Ну да не эксабайты на маке))) Маки вообще уникальные в своём роде устройства.
И там где-то внизу зиждятся серверные винды, скромненько, со своими 24 терабайтами.

Code
1
Эксабайт(Эбайт) 10^18 байт  = 1 000 000 000 000 000 000 байт
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
13.02.2021, 08:06
Цитата Сообщение от The trick Посмотреть сообщение
Так она не сможет выделится т.к. у тебя отключен файл подкачки
Именно так она не сможет по любому, даже если я включу файл подкачки, всё равно для массива память не выделится в файл подкачки.
Цитата Сообщение от The trick Посмотреть сообщение
Я выделил по типу того как это делают функции винды типа VirtualAlloc.
В этом всё и дело! Ты выделил, а не Винда. Про это я и написал, что не может она сама.

Цитата Сообщение от The trick Посмотреть сообщение
это просто пример того что процесс может выделить памяти сколько ему нужно и работать с ней не смотря на то сколько у него установлено RAM.

Пример хороший, спору нет. Но это он реализован в коде, вот когда Винда сможет без всяких бубнов просто выполнить этот код Dim a(327680, 327680) As Byte при недостатке физической оперативки, тогда да, я подниму руки вверх, скажу сдаюсь!

А написать руками что угодно можно, особенно такому монстру как тебе. Я вообще удивился, что ты это не на VB6 написал, я был почти уверен, что сможешь
1
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
13.02.2021, 08:19
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Ты выделил, а не Винда
Шиндоуз загружает исполняемые файлы и DLL через отображение, это теперь тоже не считается за выделение памяти?
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
13.02.2021, 08:42
Цитата Сообщение от Замабувараев Посмотреть сообщение
Шиндоуз загружает исполняемые файлы и DLL через отображение, это теперь тоже не считается за выделение памяти?
А что, у нас внутри каждого экзешника и DLL есть код, который создает на диске swap.map?
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
13.02.2021, 09:10
Вам дали указатель на область памяти. Вам есть разница каким образом этот указатель получен? Или вам конкретно нужно получить объект типа SafeArray, именно так в потрохах VB6 устроены массивы?

Добавлено через 15 минут
Если SafeArray, то количество элементов упирается в 32‐битное целое, такой массив не может занимать больше четырёх гигабайт.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
13.02.2021, 09:43
Цитата Сообщение от Замабувараев Посмотреть сообщение
именно так в потрохах VB6 устроены массивы?
Я не привязываюсь к VB6.
Утверждение:
Цитата Сообщение от The trick Посмотреть сообщение
Лимиты виртуальной памяти намного больше чем 2 ТБ
Пояснение:
2ТБ это максимальная оперативка в win10 pro.
Иными словами The trick утверждает, что Винда сама может выделить память приложению столько, сколько оно запросит, если даже это будет больше, чем наличии оперативной памяти.

Я прошу написать на любом ЯП эквивалент кода:
Visual Basic
1
2
3
4
5
6
7
8
Dim a(327680, 327680) As Byte
For i = 0 To 327680
    For j = 0 To 327680
        a(i, j) = Int(Rnd() * 250)
    Next
Next
MsgBox a(10, 10)
MsgBox a(327680, 327680)
у него не вышло. Был написан совсем другой код, с использованием файла на диске, который завесил систему.

Ваш выход! FreeBasic x64 существует же? Пусть Винда сама выделит память под массив такого размера.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
13.02.2021, 09:53
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Винда сама
Я правильно понимаю, что можно использовать только функцию HeapAlloc, но не MapViewOfFile?
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
13.02.2021, 10:03
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Чтобы не уходить в своп, кто знает что взбредёт винде и что она начнёт выгружать во все свопы.
Т.е. своя архитектура под задачу. Она не даст, конечно, обратиться ко всему этому пространству,
как файл маппинг, но если этого и не требуется - отработает значительно быстрее.
Пожалуйста объясни это подробнее, я просто не могу понять как файл-маппинг может быть медленнее чем какое-то ручное решение.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Именно так она не сможет по любому, даже если я включу файл подкачки, всё равно для массива память не выделится в файл подкачки.
Если ты включишь файл подкачки необходимого размера то все спокойно выделится, т.к. механизм один и тот же. А все потому что память выделяется виртуальная, а не физическая.


Цитата Сообщение от Pro_grammer Посмотреть сообщение
В этом всё и дело! Ты выделил, а не Винда. Про это я и написал, что не может она сама.
Не нужно этого, ты изначально писал про другое. Windows мне выделила кусок виртуальной памяти в 100ГБ при установленной RAM меньше этого объема - о чем я изначально написал.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Но это он реализован в коде, вот когда Винда сможет без всяких бубнов просто выполнить этот код Dim a(327680, 327680) As Byte
Вот это поворот! Не важно как он реализован, через File-Mapping, через VirtualAlloc или через прослойки типа malloc. Факт того что ты говорил что это невозможно, а я показал что возможно. Что значит реализован в коде, я так и не понял. Ты что как-то выделяешь память не в коде?

Цитата Сообщение от Pro_grammer Посмотреть сообщение
А что, у нас внутри каждого экзешника и DLL есть код, который создает на диске swap.map?
Нет. Тебе написали про другое, про то что каждый исполняемый файл также маппится в АП процесса. Насчет файла swap.map у тебя система сама пишет в подобный файл называется pagefile.sys когда включен системный файл подкачки.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Я вообще удивился, что ты это не на VB6 написал, я был почти уверен, что сможешь
Я бы мог подобное написать и на VB6, но как я написал это менее наглядно т.к. в VB6 - 32 битные указатели.
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
13.02.2021, 10:07
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Иными словами The trick утверждает, что Винда сама может выделить память приложению столько, сколько оно запросит, если даже это будет больше, чем наличии оперативной памяти.
Да, это так. Это основы и то для чего и создавался механизм виртуальной памяти. Для меня это странно что ты этого не знаешь.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
у него не вышло. Был написан совсем другой код, с использованием файла на диске, который завесил систему.
Разницы нет. Память по факту выделилась в итоге? Вот этот кусок кода:
C
1
2
    for (UINT64 i = 0; i < szSwapSize.QuadPart; i++)
        pbData[i] = 1;
как-то по особому работает?
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
13.02.2021, 10:31
Цитата Сообщение от The trick Посмотреть сообщение
Разницы нет. Память по факту выделилась в итоге?
Есть.
И твой подход можно тупо заменить на файл с произвольным доступом. Без всяких танцев со swap.map, читать любые данные из файла и писать в файл. Даже массив не нужно создавать.

А DIM это другое. Это Винда сама берёт, и автоматически выделяет память для массива. Мы больше ни чего не пишем в коде. Только DIM. Разницу видишь? просто скомпилировать 1 строчу
Code
1
Dim a(327680, 327680) As Byte
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
13.02.2021, 10:41
Цитата Сообщение от Pro_grammer Посмотреть сообщение
И твой подход можно тупо заменить на файл с произвольным доступом. Без всяких танцев со swap.map, читать любые данные из файла и писать в файл. Даже массив не нужно создавать.
Ты не ответил на вопрос, память в итоге выделилась? Не нужно что-то сейчас левое придумывать и говорить об этом. Я написал что лимиты виртуальной памяти намного больше чем оперативной и что приложение без проблем сможет выделить памяти столько сколько ему нужно не взирая на объемы RAM. Ты же писал что это невозможно. Насчет файла с произвольным доступом ты конечно прав что можно заменить, только вот приложению которое работает с таким кодом от этого ни горячо ни холодно, оно ожидает получить блок памяти.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
А DIM это другое. Это Винда сама берёт, и автоматически выделяет память для массива. Мы больше ни чего не пишем в коде. Только DIM. Разницу видишь? просто скомпилировать 1 строчу
DIM это тоже самое. Только касаемо механизма SAFEARRAY (те массивы что в VB6), там просто стоит ограничение на размеры внутри самой логики работы функции, а не ограничения памяти. Кстати созданные вручную такие массивы (c флагом FADF_AUTO), будут работать без проблем.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Мы больше ни чего не пишем в коде. Только DIM. Разницу видишь? просто скомпилировать 1 строчу
Послушай, при чем тут это? Не нужно сейчас уходить от темы. Я с тобой спорю не из-за этого сколько строчек написать нужно. Подумай и перечитай о чем я писал и на что ты отвечаешь.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
13.02.2021, 11:02
Цитата Сообщение от Pro_grammer Посмотреть сообщение
И твой подход можно тупо заменить на файл с произвольным доступом
Нельзя.

Потому что указатель, возвращённый MapViewOfFile — это настоящий указатель на память и его можно отправлять в любую функцию где требуется указатель, например, во всякие винапи. Выполнять по этому указателю Placement New, таким образом создавать объекты.

А с файлом что? Как HANDLE можно передать в функцию требующую указатель? Как на HANDLE можно создать объект?
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
13.02.2021, 11:11
Цитата Сообщение от Замабувараев Посмотреть сообщение
Потому что указатель, возвращённый MapViewOfFile — это настоящий указатель на память и его можно отправлять в любую функцию где требуется указатель, например, во всякие винапи. Выполнять по этому указателю Placement New, таким образом создавать объекты.
Мне этого не требуется.
Тупо выделить память под массив, которая больше оперативки.
Но не силами самого приложения, как у The trick, а это должна сделать Винда сама.

Вот такая простая задача.
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
13.02.2021, 11:18
Замабувараев, более того он не сможет с файлом разименовать указатель, а любой доступ ему придётся оборачивать в ReadFile/WriteFile/SetFilePointerEx. Я уже молчу о скорости при таком подходе.

Добавлено через 6 минут
Pro_grammer, что задачи теперь на ходу будем придумывать? Вот тебе простое решение - создай файл подкачки на 200гб и включи его, если тебя не устраивает чем то внешний файл подкачки. И все функции винды подхватят его и будут работать как ты хочешь. Только зачем это нужно, если и так уже удалось выделить виртуальной памяти больше чем оперативной хотя ты говорил что это невозможно. Я прекрасно понимаю почему ты так сказал, а теперь изворачиваешься, но тут не дураки сидят. Извини мб грубо, но так и есть.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
13.02.2021, 11:25
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Тупо выделить память под массив
Вам так нужен массив? Вот код на фрибесике:
PureBasic
1
2
3
4
5
6
7
8
9
10
11
Const ARRAY_LENGTH As LongInt = 100 * (1024 * 1024 * 1024)
 
Function CreateArray(ByVal Length As LongInt)As UByte Ptr
    Return MapViewOfFile()
End Function
 
Dim pArray As UByte Ptr = CreateArray(ARRAY_LENGTH)
 
For i As LongInt = 0 To ARRAY_LENGTH - 1
    pArray[i] = Rnd() * 265
Next
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.02.2021, 11:25
Помогаю со студенческими работами здесь

Реализовать процедуры работы со стеком на последовательном распределении памяти
На языке программирования Pascal реализовать процедуры работы со стеком на последовательном распределении памяти: - Создание пустого...

Реализовать процедуры работы со стеком на последовательном распределении памяти
Ребят, нужна помощь!!! Так вот, у меня проблема! всегда пишет что стек переполнен, а из файла просто стирает всю инфу. НЕ разбираюсь в...

Ошибка при распределении памяти: realloc(): invalid next size
Добрый день. Написал программу с динамическим массивом. Нужно для него сделать динамическое увеличение памяти, если оно нужно, однако...

Стек: Реализовать процедуры работы со стеком на последовательном распределении памяти
Есть задание 1. На языке программирования C++ реализовать процедуры работы со стеком на последовательном распределении памяти: -...

Стоит ли при динамическом распределении памяти перехватывать возможные ошибки через try/catch?
Здравствуйте. Обращаюсь к опытным. Скажите, стоит ли при каждом динамическом распределении памяти перехватывать возможные ошибки...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru