Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 08.12.2014
Сообщений: 6
1

Не очищается динамическая память, codeblocks

22.12.2014, 04:34. Просмотров 1031. Ответов 2
Метки нет (Все метки)

При каждой новой прогонке сумма выдается все больше и больше. если что, само задание - в одномерном массиве найти сумму всех модулей элементов с нечетными индексами
C++ (Qt)
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
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
int main()
{ cout << "Avtor: ---" << endl;
    cout << "Zadanie: naiti summu modulei elementov c nechetnymi indexami" << endl;
    int i, k, sum;
    fstream f;
    f.open("znachenia.txt",ios::in);
    if (f.bad()==0)
        {f>>k; if (k<0) {k=0;}; if (k>20) {k=20;};};
            int *p = new int[k];
            for (i=0; i<k;)
                {f>>*(p+i); i++;
                  if (i>=k) {break;};
                  if (f.eof()) {k=i;break;}};
    f.close();
    f.open("rezultat.txt",ios::out);
    if (f.bad()==0)
    {f<<"Kontrol'nii vivod massiva:"<<endl;
        for (i=0; i<k; i++)
        {f<<*(p+i)<<endl;};
        f<<"______________"<<endl;
        f<<"Rezul'tati:"<<endl;
      for (i=0; i <= k; i+=2){
        sum+= fabs(*(p+i));
        }
                cout << sum << endl;
                f<< sum <<endl;
    f.close();
 
    }
 
 
delete[] p;}
саму память очищаю, а она не очищается(
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2014, 04:34
Ответы с готовыми решениями:

Очищается ли вся динамическая память по завершению программы?
#include&lt;stdio.h&gt; #include&lt;malloc.h&gt; #include&lt;string.h&gt; #include&lt;locale.h&gt; const int Max =...

Азы: статическая память, динамическая память, автоматическая память
столько раз приходистя возвращаться к началу, и все благодаря моим преподавателям, которые не...

Правильно ли очищается память?
сть программа которая работает с динамическим массивом. работает она так: int** a = new int*; ...

Динамические массивы: очищается ли память?
Здравствуйте. Подскажите, пожалуйста, по поводу динамических массивов. Допустим, есть вот такой...

2
47 / 28 / 12
Регистрация: 23.01.2013
Сообщений: 125
22.12.2014, 05:22 2
Лучший ответ Сообщение было отмечено Zag14 как решение

Решение

Не очищается динамическая память
Кто вам сказал это?
Во-первых нужно инициализировать переменную, ибо к мусору будет прибавлять.
И начинать нужно со второго элемента массива
C++
1
2
3
int sum = 0
...
for (i = 1; i < k; i += 2)
C++
1
if (f.bad() == 0)
Тут проверяется флаг badbit, но если файл не открылся устанавливается другой флаг failbit
1
Croessmah
22.12.2014, 12:25     Не очищается динамическая память, codeblocks
  #3

Не по теме:

=-O вырвиглаз

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2014, 12:25
Привет! Вот еще темы с ответами:

Cpp. Как очищается память в функциях?
Я привык, что чисткой памяти занимается GC. А тут надо написать библиотеку на Cpp. От сюда базовые...

Правильно ли очищается память?
имеется структура typedef struct { LPCWSTR letter; } structura; объявляю из функции саму...

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

Беда с курсором. Видимо, не очищается память
Есть у меня такой курсор: set @prodName = (select Product_name from inserted) set @prodQuant =...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.