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

Динамические массивы: выделяем и высвобождаем память - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Компилятор не дает написать main без int. Ошибка в книге, или в С так можно? http://www.cyberforum.ru/cpp-beginners/thread1247058.html
В книге И.Ш. Хабибуллина "Программирование на языке высокого уровня C/C++" во всех примерах пишут так: main() { } Компилятор не дает написать main без int. Ошибка в книге, или в С так можно?
C++ Указатели Функции Например есть функция void myfunc(int &number) скажите пожалуйста почему параметр функции number автоматически указывает на данный адрес то исть не нужен указатель, если функция автоматически создает указатель получается что данный код верный void myfunc(int &number) { number = 20; } http://www.cyberforum.ru/cpp-beginners/thread1247050.html
C++ Деревья поиска: Составить программу, которая содержит динамическую информацию об организациях
Составить программу, которая содержит динамическую информацию об организациях: ● номер телефона ● наименование организации ● адрес ● дата регистрации организации Вывести информацию об организации по адресу. Вывести все организации, находящиеся на заданной улице.
STL: найти все максимальные цепочки подряд идущих положительных чисел с указанием длины каждой цепочки C++
Создать массив длины N (число N вводится с клавиатуры). Заполнить массив рандомно. Найти все максимальные цепочки подряд идущих положительных чисел с указанием длины каждой цепочки (за идентификатор цепочки взять индекс первого её элемента). Для найденных чисел: 1) Определить количество найденных элементов 2) Найти все числа, которые больше А или меньше В (числа А и В вводятся с клавиатуры)...
C++ Вывод переменных типа char: правильно выводится только первый символ http://www.cyberforum.ru/cpp-beginners/thread1247025.html
Всем привет. Извиняюсь, если вопрос слишком уж нелепый, но не могу понять в чем суть... #include <cstdio> int main() { char a,b,c; printf("Enter smth: "); scanf("%c,%c,%c", &a, &b, &c);
C++ Системная ошибка при использовании dll Здравствуйте. MFC-приложение. Есть функция заполнения CListBox. void CGUIAppDlg::InputListBox(CString& EditField, CListBox& MainListBox) { UpdateData(TRUE); if (EditField.IsEmpty()) { MessageBox(L"Выберите директорию",L"Сообщение", MB_OK | MB_ICONINFORMATION ); return; } подробнее

Показать сообщение отдельно
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 755
26.08.2014, 00:54     Динамические массивы: выделяем и высвобождаем память
Цитата Сообщение от VladK Посмотреть сообщение
Не знаю как получается 0
Полагаю, ответ уже дан. Система чудит с памятью.

Но для полноты картины:
Кликните здесь для просмотра всего текста

http://www.cyberforum.ru/attachment....1&d=1408999994

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
void GetMemSize(DWORD ProcessID, size_t &Memory, size_t &PageFile)
{
    HANDLE hProcess;
    PROCESS_MEMORY_COUNTERS pmc;
 
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, ProcessID);
    if (NULL == hProcess)
        return;
 
    if (GetProcessMemoryInfo(hProcess, &pmc, sizeof(pmc)))
    {
        Memory = pmc.WorkingSetSize;
        PageFile = pmc.PagefileUsage;
    }
    CloseHandle(hProcess);
}
 
void SingleArr()
{
    int *arr = new int[100500];
    delete[]arr;
}
 
void MultiArr()
{
    int nRow = 10, i;
    int **multiarr = new int *[nRow];
    for (i = 0; i < nRow; i++)
        multiarr[i] = new int[100500];
 
    for (i = 0; i < nRow; i++)
        delete[]multiarr[i];
    delete[]multiarr;
}
 
void SomeFunc()
{
    int* i;
    i = new int[100500];
    delete[] i;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    DWORD processID = GetCurrentProcessId();
    size_t memory_before, pagefile_beforre, memory_after, pagefile_after;
 
    GetMemSize(processID, memory_before, pagefile_beforre);
 
    SingleArr();
 
    GetMemSize(processID, memory_after, pagefile_after);
    cout << "Before\tWorkingSetSize: " << memory_before << "\tPagefileUsage: " << pagefile_beforre << endl;
    cout << "After\tWorkingSetSize: " << memory_after << "\tPagefileUsage: " << pagefile_after << endl << endl;
    cout << "Used\tWorkingSetSize: " << memory_after - memory_before << "\tPagefileUsage: " << pagefile_after - pagefile_beforre << endl << endl;
 
    GetMemSize(processID, memory_before, pagefile_beforre);
 
    SomeFunc();
 
    GetMemSize(processID, memory_after, pagefile_after);
    cout << "Before\tWorkingSetSize: " << memory_before << "\tPagefileUsage: " << pagefile_beforre << endl;
    cout << "After\tWorkingSetSize: " << memory_after << "\tPagefileUsage: " << pagefile_after << endl << endl;
    cout << "Used\tWorkingSetSize: " << memory_after - memory_before << "\tPagefileUsage: " << pagefile_after - pagefile_beforre << endl << endl;
 
    GetMemSize(processID, memory_before, pagefile_beforre);
 
    MultiArr();
 
    GetMemSize(processID, memory_after, pagefile_after);
    cout << "Before\tWorkingSetSize: " << memory_before << "\tPagefileUsage: " << pagefile_beforre << endl;
    cout << "After\tWorkingSetSize: " << memory_after << "\tPagefileUsage: " << pagefile_after << endl << endl;
    cout << "Used\tWorkingSetSize: " << memory_after - memory_before << "\tPagefileUsage: " << pagefile_after - pagefile_beforre << endl << endl;
 
    system("pause");
    return 0;
}
Миниатюры
Динамические массивы: выделяем и высвобождаем память  
 
Текущее время: 13:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru