Форум программистов, компьютерный форум CyberForum.ru

Работа с динамической памятью! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти элементы главной диагонали матрицы http://www.cyberforum.ru/cpp-beginners/thread38595.html
Найти элементы главной диагонали матрицы 5 на 5
C++ Матрица nXm Приветик! Помогите плиз Решить задачку: Дана действительная матрица размера nXm, все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, затем среди этих чисел вы- бирается наибольшее. Указать индексы элемента с найденным значением. Вот ее решение на Дельфи, но мне нужно на С++ Плиз Переделайте Очень прошу!! http://www.cyberforum.ru/cpp-beginners/thread38594.html
C++ Задача на файлы
Написать в файл 100 случайных чисел в диапазоне от -100 до 100, а затем считывает и распечатывает каждое второе число. Пожалуйста, помогите. Очень срочно надо
C++ Спасибо за помошь
Спасибо всем за помощь,Вы все мне очень помогли, написание курсовой я закончила, в понедельник пойду показывать, надеюсь, что все будет ок. Спасибо еще раз за помощь.:)
C++ Приведите 10 примеров непереносимого кода http://www.cyberforum.ru/cpp-beginners/thread38569.html
Задача: Приведите 10 различных примеров непереносимого кода на С++. Ну первый пример сразу мне бросился в глаза,при регистрации на форуме.(Если я правильно понимаю смысл задачи) #include <iostream> #include <clocale> #include <math.h> using namespace std; int main() { system("Color 1A");
C++ контроллер видеомагнитофона как исправить класс для представления понятия "контроллер видеомагнитофона"(обеспечивает програмное управление видеомагнитофоном, который может осуществлять запись,вставить, извлечь кассету и проверить наличие кассеты, выполнять воспроизведение кассеты и осуществлть перемотку в указанном направлении что бы выводил на экран всё что надо как и что выводить в поток cout magnitofon.h #ifndef... подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16942 / 5347 / 329
Регистрация: 30.03.2009
Сообщений: 14,377
Записей в блоге: 26
08.06.2009, 16:05     Работа с динамической памятью!
Цитата Сообщение от fba Посмотреть сообщение
Есть какой-нить способ хранить ВСЕ указатели на выделенные блоки, чтоб их потом можно было удалить? проблема в том, что неизвестно сколько этих блоков получится.
Можешь хранить в каком-нибудь динамическом массиве, который так же будешь выделать кусками. осле ого, как весь кусок заполнился, перевыделяешь его (через realloc), либо ведёшь страничную структуру из кусков

Хотя наиболее простым вариантом для твоего случая будет выделять куски, а в начало каждого куска помещать указатель на слудующий. Т.е. вести список, где сами куски являются элементами списка

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct Block
{
  struct Block *next;
};
 
...
// Выделение нового куска размером в size байт
struct Block *elem;
 
// Со слишком маленькими кусками работать не будем
if (size < sizeof (struct Block))
  abort ();
 
// Нам до фонаря тот факт, что выделяемый блок имеет размер бОльший, чем наша структура.
// Главное, что мы его выделили и что в начале блока лежит наша структура,
// по которой мы найдём все блоки
elem = malloc (size);
prev_elem->next = elem;
elem->next = NULL;
 
Текущее время: 07:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru