Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2009, 14:52   #1
Raz0r
Пользователь
 
Регистрация: 06.11.2007
Сообщений: 47
По умолчанию Управление памятью

Помогите с задачей: Нужно заполнить, а потом очистить всю оперативную память. Заполняется в двух вариантах: функциями malloc'om и HeapAlloc, блоками по 6 Кбайт.

Попробовал заполнять тупо стеками - не получается очищать, да и заполняется долговато, подскажите где накосячил, или может как-нить по-другому можно?
Код:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

struct node
{
	char *str;
	node *link;
}*TOP, *k;

void main()
{
	TOP=NULL;
	while(1)
	{
		k=new node;
		if((k->str=(char*)malloc(6144))==NULL)break;
		k->link=TOP;
		TOP=k;
	}
	printf("Memory is full!\n");
	printf("Press any key to continue...\n");
	getch();
	while(TOP->link!=NULL)
	{
		k=TOP;
		TOP=TOP->link;
		free((void*)k->str);
		delete k;
	}
	printf("Memory is free!\n");
	getch();
}
Raz0r вне форума Ответить с цитированием
Старый 02.03.2009, 15:14   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
всю оперативную память
И ты думаеш винда так просто это позволит? В Спул скинет и делов то.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.03.2009, 15:46   #3
Raz0r
Пользователь
 
Регистрация: 06.11.2007
Сообщений: 47
По умолчанию

Думаю да, потому что код который я выше написал заполняет всю свободную память, только медленно и не очищает потом... =) Вот я и хотел спросить почему, или может можно как-нибудь по-другому сделать...
Raz0r вне форума Ответить с цитированием
Старый 02.03.2009, 16:50   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
олько медленно и не очищает потом
Вот думаю медленно потому что винда спулер начинает задействовать
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.03.2009, 18:42   #5
Raz0r
Пользователь
 
Регистрация: 06.11.2007
Сообщений: 47
По умолчанию

А не очищает почему? Тут вроде всё просто, удаление стека с предварительным освобождением содержимого, а память выделенная не уходит, второй while зацикливается...
Raz0r вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с выделенной памятью Ivan_32 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 27.02.2009 02:14
Управление памятью ilham Операционные системы общие вопросы 2 17.12.2008 18:29
Проблема с памятью в С++ rJIaBkoM Помощь студентам 1 14.06.2008 14:25
динамическое управление памятью oblom Общие вопросы C/C++ 12 16.02.2008 15:24
Работа с памятью Shurik Hacker Общие вопросы Delphi 7 22.06.2007 20:51