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

Повреждение кучи - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рекурсивная функция вычисления разрядности числа в двоичном виде http://www.cyberforum.ru/cpp-beginners/thread673016.html
Есть неработающий код: #include <iostream> using namespace std; unsigned char capacity (unsigned char number) { if (number == 0 || number == 1) return 1;
C++ Не могу собрать проект в exe (MVS2012) Использую mvs2012. Никак не могу понять, как собрать проект в готовый exe. Нажимал там всякие компиляции, сборки, отладку в режиме релиза. Потом заходил в папку компилятора в моих документах. Там... http://www.cyberforum.ru/cpp-beginners/thread673014.html
C++ Файлы
freopen("rpq.in", "r", stdin); freopen("rpq.out", "w", stdout); К какому каталогу будет обращаться программа Vc++
C++ Время выполнения
Скажите, как я могу сравнить время выполнения 2 функций? Желательно сразу готовый код.
C++ Сортировка Шелла http://www.cyberforum.ru/cpp-beginners/thread673005.html
Скажите пожалуйста какой из вариантов лучше использовать для реализации сортировки Шелла? Второй вариант меня смущает тем, что там больше функций? Это сильно замедлит работу по сравнению с первым...
C++ Оператор sizeof Используя оператор sizeof определите и выведите на экран количество байт, необходимых для хранения всех известных Вам простых типов данных: подробнее

Показать сообщение отдельно
bytephone32
1 / 1 / 0
Регистрация: 08.08.2012
Сообщений: 21
18.10.2012, 19:28  [ТС]
Croessmah, но в данном случае память будет выделяться последовательно? Каждая структура будет размещаться сразу же за предыдущей структурой?

Может будет безопаснее создать, так:

C++
1
2
typedef TR* FIELD;
typedef TR** DATABASE;
в DATABASE будет хранится адрес на FIELD на структуру. в Самом FIELD уже адрес самой структуры.

Добавлено через 35 минут
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
#include <memory>
 
 
typedef void* FIELD;
typedef void** DATABASE;
 
static int fieldCnt = 0;
 
struct TR
{
    int i;
    int k;
};
 
// Create table of database
DATABASE CreateTable ( void );
 
//Add field
void AddField ( DATABASE& );
 
int main()
{
    DATABASE db;
 
    db = CreateTable ( );
 
    AddField(db);
    AddField(db);
    AddField(db);
    AddField(db);
 
    cout<<((TR*)db + fieldCnt)->i;
 
    //ShowTable ( db );
 
    //DeleteTable ( db );
 
    system("pause");
    return 0;
}
 
DATABASE CreateTable ( void )
{
    return (DATABASE) malloc ( sizeof ( FIELD ) );
}
 
void AddField ( DATABASE& db )
{
    //aloccated memory for our struct in last field;
    *(db + fieldCnt) = (TR*) malloc ( sizeof ( TR ) );
    //input data
    printf ( "Input day: " );
    scanf ( "%d", &((TR*)db + fieldCnt)->i );
    //
        //как тут нам расширить память для указателей для структур???
    *db = ( FIELD ) realloc ( *db, ( ++fieldCnt + 1 ) * sizeof ( FIELD ) );
}
Добавлено через 20 минут
т.е. в db всегда должен хранится адресс на первый байт массива указателей на структуры, и должен равнятся всегда одному значению, которое ему досталось после выполнения функции CreateTable ( );
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru