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

Как освободить память быстро? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить количество простых чисел в каждом массиве http://www.cyberforum.ru/cpp-beginners/thread405121.html
Записать каждый второй элемент целочисленного массива Х=(x1,x2,…,xn) подряд в массив Y=(y1,y2,…,yk). Определить количество простых чисел в каждом массиве. Вычислить среднее арифметическое всех элементов массивов X и Y.
C++ Сформировать массив Y следующим образом: сначала положительные, потом отрицательные, нулевые игнорировать Дан массив вещественных чисел X=(x1,x2,..,xn). Записать элементы заданного массива Х в массив Y следующим образом: в начальной части расположить положительные элементы в порядке возрастания, затем в порядке убывания отрицательные элементы, нулевые элементы не записывать. Оценить, как при этом изменилось положение максимального и минимального элементов массива. http://www.cyberforum.ru/cpp-beginners/thread405119.html
C++ Задача C++ (целочисленный Массив)
В целочисленный массив X(n) после каждого нечетного элемента вставить максимальный простой элемент этого же массива. Определить среднее арифметическое простых элементов массива до и после вставки. Добавлено через 18 минут #include <iostream> using namespace std; int main()
Вывести длинное слово из строки C++
Привет всем, подскажите как можно из строки вывести длинное слово а не из сколько оно состоит символов. Вот маленький код ищет максимальное слово (выводит не слово, а из сколько символов состоит слово) #include <stdio.h> #include <string.h> #include <conio.h> int main() { clrscr(); char str,*temp;
C++ В массиве после каждого отрицательного элемента вставить ноль http://www.cyberforum.ru/cpp-beginners/thread405112.html
Решить В массиве X(n) после каждого отрицательного элемента вставить ноль. Определить, поменялось ли местоположение минимального элемента массива. Найти сумму четных и произведение нечетных элементов массива. Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.
C++ Определить, содержит ли заданный массив группы элементов Помогите решить задачу. Определить, содержит ли заданный массив группы элементов, расположенные в порядке возрастания их значений. Если да, то определить количество таких групп. Удалить из массива первую такую группу. Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п. подробнее

Показать сообщение отдельно
таня1
 Аватар для таня1
2 / 2 / 0
Регистрация: 13.11.2010
Сообщений: 72
12.12.2011, 11:59     Как освободить память быстро?
Функция malloc неправильно работает...Заполняется память быстро,а очищается долго,с чем это связано,кто знает
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include<iostream>
#include<malloc.h>
#include<time.h>
#include<windows.h>
#include<conio.h>
using namespace std;
struct node
    {
        void* info;
        node* next;
    };
    int n = 17*1050;
    int i=0;
    node* top,*p,*q;
    time_t start,end ;  
void heap()
    {
    cout<<"\nФункция HeapAlloc()\n";
    p=new node;
    top=p;
    time(&start);
    HANDLE heap=HeapCreate(0l,n,0);
    p->info=HeapAlloc(heap,0,n);
    q=p;
    p=new node;                             
    q->next=p;
    while(p->info=HeapAlloc(heap, 0,n))
    {       
        q=p;    
        p=new node;
        q->next=p;
        i++;
    }
    time(&end);
    p->next=NULL;   
    cout<<"Память заполнена. Объём: "<<i*4<<"Kb Время заполнения: "<<end-start;
    system("pause");
    cout<<"\nПроизводится очищение памяти.";
    p=top;
    time(&start);
    int l=100000;
    while(l>0)
    {
        int a=10000;
        while (a>0)
            a--;
        l--;
    }
    HeapDestroy(heap);
    time(&end);
    cout<<"Память очищена за время: "<<end-start<<endl;
    system("pause");
    }
void mall()
    {
    i=0;
    cout<<"Функция Malloc()"<<endl;
    top=new node;   
    top->info=malloc(n);
    p=top;
    q=top;  
    time(&start);
    p->info=malloc(n);
    p=new node;
    q->next=p;  
    while(p->info=malloc(n))
    {       
        q=p;    
        p=new node;
        q->next=p;
        i++;
    }
 
    time(&end);
        p->next=NULL;
    cout<<"Память заполнена. Объём: "<<i*4<<"Kb Время заполнения: "<<end-start<<"\nПроизводится очищение";
    p=top;
    time(&start);
    cout<<"\ni="<<i<<endl;
    while(i!=0)
    {
        free(p->info);
        p=p->next;  
        i--;
        if(i%1000==0)
        cout<<i<<endl;
    }
    time(&end);
    cout<<"Память очищена за время: "<<end-start<<endl;
    system("pause");
    }
void main()
{   
    setlocale(LC_CTYPE, "Russian");
    int k;
    while(1)
    {
        cout<<"\nМеню:\n1.Функция Malloc().\n2.Функция HeapAlloc().\n";
    k=getch();
    switch (k)
    {
    case 49:mall();break;
    case 50:heap();break;
    }   
    }
 }
посмотрите пожалуйста...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru