Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Ошибка линкера при сборке из двух файлов http://www.cyberforum.ru/c-beginners/thread97479.html
Проблема в проге. Если быть точнее, то не понимаю ошибки (стоит VC 2008). Прграмма состоит из 2-ух частей (основн. и my_progect.cpp, который я добавляю к основн.) Что я делаю не так? вот код:...
C (СИ) Определить, сколько в тексте слов, состоящих из не более, чем четырех букв
#include<stdio.h> #include<conio.h> #define PATH "C:\\h1.txt" void main() { int count=0,b=0; char c; FILE *f; clrscr();
Частотный анализ текста C (СИ)
Доброго времени суток! Решаю задачу в С++ (среда Borland C++ 3.0) Дан файл, содержащий текст, набранный заглавными английскими буквами. В нем содержатся также знаки препинания. Провести...
C (СИ) Создание файла из действительных чисел, расположенных в порядке возрастания // Создать ф-ии, рещающие след. задачи: // 1.Создание файла из действительных чисел, расположенных в порядке возрастания void create(char *s, int n) { FILE*f=fopen(s,"wb"); float a; ... http://www.cyberforum.ru/c-beginners/thread96949.html
C (СИ) Электронные часы - перевести код с Pascal http://www.cyberforum.ru/c-beginners/thread96932.html
я ваще си не знаю (((помогите пожалуйста перевести код из паскаля в си.. uses graph,dos,crt; var device,mode,Ny,Mx:integer; v,w,x,y,z,f,c,d:word; procedure puzzle; var...
Метод "быстрой сортировки" массива C (СИ)
Здравствуйте, помогите разобраться с проблемой. Общее задание звучит так: написать программу, которая будет загружать массив из файла, сортировать его с помощью метода быстрой сортировки и записывать...
Как удалить структуру из файла? C (СИ)
Доброго времени суток! Заранее скажу что поиск юзал =) Если в кратце: как удалить структуру из файла? записываем с помощью fwrite(&struct1,sizeof(struct1),1,fp) а как её удалить? синтаксис...
C (СИ) Если возможно, с поля (k, l) одним ходом ферзя попасть на поле Помогите что не так?:) Вроде правильно идет программа,но не хочет в конце выводить правильно a и b. /* Поле шахматной доски определяется парой натуральных чисел, первое из которых задает... http://www.cyberforum.ru/c-beginners/thread96555.html
C (СИ) This function or variable may be unsafe http://www.cyberforum.ru/c-beginners/thread96538.html
Всем привет! проблема такая, клиент-серверное приложение было изначально написано под unix. я решил переделать его под windows! приложение реализовано на winsock. соответственно поменял заголовочные...
C (СИ) Вычислить число Фибоначчи с номером n Народ, помогите плз Вычислить число Фибоначчи с номером n (каждое число Фибоначчи представить в виде целочисленного массива десятичных цифр). на языке С :wall::help: #include <stdlib.h> #include... http://www.cyberforum.ru/c-beginners/thread96516.html
Rgs
0 / 0 / 0
Регистрация: 16.09.2015
0

Run-Time Check Failure #2 - Stack around the variable 'dht' was corrupted

20.02.2010, 22:02. Просмотров 32499. Ответов 3
Метки (Все метки)

Всем доброго времени суток! Недавно начал программировать на C в среде Microsoft Visual C++. Написал программу, но всё время вылазит одна и так же ошибка: Run-Time Check Failure #2 - Stack around the variable 'dht' was corrupted. Не могу понять в чём дело, уже много часов сижу над этой проблемой. Читал в интернете, там писали что вроди как вышел за пределы чего-то, только вот чего не понятно. Помогите скажите в чём ошибка. Код программы:

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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
#include <stdio.h>
#include <stdlib.h>
#include <TPerfMeter.h>
#define size 10000
struct tan {
    char ak[14];
    char pl[14];
    int cl;
};
struct elem {
    tan data;
    elem *next;
};
enum bol {NO,YES};
void insert(tan el,elem *ht[],int s);
bol member(tan el,elem *ht[],int s);
void makenull(elem *ht[],int s) {
    int i;
    for (i=0;i<=s;i++)
        ht[i]=NULL;
}
void rebuild(elem *ht[],int s,elem *dht[]) {
    int i;
    elem *curr;
    for (i=0;i<=s;i++) {
        curr=ht[i];
        while (curr!=NULL) {
            insert(curr->data,dht,size*2-1);
            curr=curr->next;
        }
    }
}
int h(tan el,int s) {
    int i;
    int sum1=0,sum2=0;
    for (i=0;i<=14;i++) {
        sum1=sum1+el.ak[i];
        sum2=sum2+el.pl[i];
    }
    return ((sum1*sum2+el.cl)%s);
}
void insert(tan el,elem *ht[],int s) {
    int bucket;//номер сегмента
    elem *oldheader;
    if(!member(el,ht,s)) {
        bucket=h(el,s);
        oldheader=ht[bucket];
        ht[bucket]=new elem();
        ht[bucket]->data=el;
        ht[bucket]->next=oldheader;
    }
}
bol member(tan el,elem *ht[],int s) {
    elem *curr;
    curr=ht[h(el,s)];
    while (curr!=NULL) {
        if (curr->data.ak==el.ak) return (YES);
        else curr=curr->next;
    }
    return (NO);
}
elem *goe(tan el,elem *ht[],int s) {
    elem *curr;
    curr=ht[h(el,s)];
    while (curr!=NULL) {
        if (curr->data.ak==el.ak) return (curr);
        else curr=curr->next;
    }
    return (NULL);
}
void del(tan el,elem *ht[],int s) {
    int bucket=h(el,s);
    elem *curr;
    if (ht[bucket]!=NULL) {
        if (ht[bucket]->data.ak==el.ak)
            ht[bucket]=ht[bucket]->next;
        else {
            curr=ht[bucket];
            while (curr->next!=NULL) {
                if (curr->next->data.ak==el.ak) {
                    curr->next=curr->next->next;
                    return;
                }
                else curr=curr->next;
            }
        }
    }
}
void ini(elem *ht[],elem *dht[],tan *el) {
    makenull(ht,size-1);
    makenull(dht,size*2-1);
    int j;
    for (j=0;j<=14;j++) {
        el->ak[j]=rand()%122;
        el->pl[j]=rand()%122;
    }
    el->cl=rand()%10000;
}
double instime(int elc) {
    elem *ht[size-1];
    elem *dht[size*2-1];
    bol htf=NO,chk=NO;
    int i,n=0;
    tan el;
    TPerfMeter pm;
    double interv=0;
    ini(ht,dht,&el);
    for (i=0;i<=elc-1;i++) {
        if (htf==NO) {
            pm.Start();
            insert(el,ht,size-1);
            interv=interv+pm.Stop();
        }
        else if (chk==NO) {
            rebuild(ht,size-1,dht);
            chk=YES;
            pm.Start();
            insert(el,dht,size*2-1);
            interv=interv+pm.Stop();
        }
        else {
            pm.Start();
            insert(el,dht,size*2-1);
            interv=interv+pm.Stop();
        }
        n++;
        if (n>=2*size-1) htf=YES;
    }
    return (interv);
}
double goet() {
    elem *ht[size-1];
    elem *dht[size*2-1];
    int i;
    tan el;
    TPerfMeter pm;
    double interv=0;
    ini(ht,dht,&el);
    for (i=0;i<=size-1;i++) insert(el,ht,size-1);
    pm.Start();
    goe(el,ht,size-1);
    interv=pm.Stop();
    return interv;
}
double deltime() {
    elem *ht[size-1];
    elem *dht[size*2-1];
    int i;
    tan el;
    TPerfMeter pm;
    double interv=0;
    ini(ht,dht,&el);
    for (i=0;i<=size-1;i++) insert(el,ht,size-1);
    pm.Start();
    del(el,ht,size-1);
    interv=pm.Stop();
    return interv;
}
void tfp() {
    printf("Insert time 10 elements: %f\n",instime(10));
    printf("Insert time 100 elements: %f\n",instime(100));
    printf("Insert time 1000 elements: %f\n",instime(1000));
    printf("Insert time 10000 elements: %f\n",instime(10000));
    printf("Insert time 20000 elements(+rebuilding hash table): %f\n",instime(20000));
    printf("Delete one element time: %f\n",deltime());
    printf("Get one element time: %f\n",goet());
    getchar();
    getchar();
}
void main() {
    printf("1. Test for performance\n");
    printf("0. Exit\n");
    printf("Choose menu point: ");
    switch (getchar()) {
        case '1':tfp();
        case '0':break;
    }
}
Ошибка каждый раз после вызова функции instime().

Вернуться к обсуждению:
Run-Time Check Failure #2 - Stack around the variable 'dht' was corrupted
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2010, 22:02
Готовые ответы и решения:

Run-Time Check Failure #2 - Stack around the variable 'y' was corrupted
Даны два строго упорядоченных по возрастанию массива X и Y из n элементов каждый. В массиве X найти...

Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted
Выдает ошибку &quot;Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted.&quot;...

Run-Time Check Failure #2 - Stack around the variable '_continue_value' was corrupted
Пишу в VS 2015 и после запуска в конце появляется предупреждение Run-Time Check Failure #2 - Stack...

Ошибка Run-Time Check Failure #2 - Stack around the variable 'tmp' was corrupted
Вот функция где она возникает, validatino - функция проверки на корректность ввода , ...

Run-Time Check Failure #2 - Stack around the variable 'after' was corrupted при обращении к символу
Здравствуйте!!!Программа работает вроде бы правильно,но после отработки программы Я сталкиваюсь с...

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