Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
belkinjoy
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 5
1

Найти утечку памяти

24.09.2015, 23:47. Просмотров 349. Ответов 1
Метки нет (Все метки)

Помогите найти утечку памяти
Кликните здесь для просмотра всего текста
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
#include <stdio.h>
#include <stdlib.h>
 
struct Rebro {
    int val;
    struct Rebro *next;
};
 
struct Vertex {
    int mark;
    struct Rebro *head;
};
 
void pushRebro(int val, int vertex, struct Vertex arr[]) {
    struct Rebro *tmp = (struct Rebro *)calloc(1, sizeof(struct Rebro));
    tmp -> val = val;
    tmp -> next = arr[vertex].head;
    arr[vertex].head = tmp;
}
void VisitVertex(struct Vertex arr[], int v) {
    arr[v].mark = 1;
    struct Rebro *p = arr[v].head;
    while(p) {
        if(arr[p -> val].mark == 0 ) VisitVertex(arr, p -> val);
        p = p -> next;
    }
    free(p);
}
int DFS(int n, struct Vertex arr[]) {
    int count = 0;
    for(int i = 0; i < n; i++) {
        arr[i].mark = 0;
    }
    for(int i = 0; i < n; i++) {
        if(arr[i].mark == 0) {
            VisitVertex(arr, i);
            count++;
        }
    }
    return count;
}
 
int main(int argc, char **argv) {
    int n = 0;
    int m = 0;
    int val = 0;
    int vertex = 0;
    scanf("%d%d", &n, &m);
    struct Vertex *arr = (struct Vertex *)calloc(n, sizeof(struct Vertex));
    for(int i = 0; i < m; i++) {
        scanf("%d %d", &vertex, &val);
        pushRebro(val, vertex, arr);
        pushRebro(vertex, val, arr);
    }
    printf("%d", DFS(n, arr));
    free(arr);
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2015, 23:47
Ответы с готовыми решениями:

Как проверять программу на утечку памяти?
Доброго времени суток! Решаю задачу. Написал программу все работает, но есть...

Найти утечки памяти
Помогите пожалуйста найти утечки памяти! Задача: Сравнить идентичны ли две...

Динамическое выделение памяти - Найти скалярное произведение векторов
Задание. Есть 4 одномерных массива,А, B, C, D На заданных массивах маленького...

Распределение памяти для выделения и освобождения блоков памяти внутри запрошенного пула
В программе малые&quot;дыры&quot; избегают,что нужно сделать что бы малые &quot;дыры&quot; не...

Вектор, утечка памяти, функция создания и выделение памяти
Здравствуйте. Есть проблема. функция malloc выделяет память лишь в функции...

1
gazlan
3141 / 1917 / 311
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
25.09.2015, 02:08 2
В 17-ой строке выход за границы массива.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2015, 02:08

Найти число минимальных элементов массива за один проход без использования дополнительной памяти
Найти число мин. элементов за один проход без использования массива. (Числа мы...

Найти утечку памяти
Приветствую всех! Много раз слышал, что с помощью CodeGuard можно проверить...

Найти утечку памяти программно
Есть программа (под 700 строк) в которой есть утечка памяти в размере, с...


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

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

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