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

access violation at address - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разсчитать значение функции http://www.cyberforum.ru/cpp-beginners/thread698889.html
Доброго времени суток. Прошу вашей помощи. Необходимо написать программу, которая разсчитывает значение ф-ции y=cos5x, период для Х , шаг 0.01 и разсчитывает среднее значение всех значений ф-ции при определенном Х. Буду очень вам признателен. ЗЫ: через цикл
C++ Большие и маленькие буквы в кавычках Задача заключается в том, что слова написанные только заглавными буквами нужно заменить на строчные и поставить все слово в кавычки., использую два файла(с которого читать и в который записывать результат) *примечание: БЛА-блабла, не ставить в кавычки. http://www.cyberforum.ru/cpp-beginners/thread698887.html
Динамическое выделение памяти C++
Доброго времени суток. Пытаюсь разобраться с динамическим выделением память. Суть: Есть структура с двумя полями: 1. Указатель на Имя таблицы 2. Указатель на двумерный массив Пользователь вводит необходимое количество структур, размерность матрицы , длину поля для имени таблицы. Подскажите пожалуйста, правильно ли я выделяю память?
C++ Затирается переменная в DevCPP
Проблема возникла в этой теме. http://www.cyberforum.ru/cpp-beginners/thread697559-page2.html Программу я написал в MSVS2008 и она корректно работала, но стали поступать жалобы, я проверил и обнаружил что в DevCPP возникает ошибка. Дело в глобальных переменных divisor, half_life и массиве mask В ходе заполнения массива mask переменная divisor портится, хотя за пределы массива я не...
C++ Запись string в файл http://www.cyberforum.ru/cpp-beginners/thread698849.html
есть строка, я её должен записать в текстовый файл так,чтобы она разбилась на несколько строк , при этом длина каждой не превышала 10 символов, а слова которые не влезли переносились: stroka="word1 jladhfa\nds;F jdhs\nkjhs kej qkjehr w "; if((a.length()<10)) { a.insert(a.begin()+10, '\n'); }
C++ Определите что за сортировка Это сортировка вставками или выбором #include <iostream> #include <time.h> #include <conio.h> using namespace std; int main (){ int temp; const int arraysize=10; int array={2,3,4,5,6,7,8,9,10,6}; for(int i=0;i<arraysize;i++){ cout<<array<<"\t";} подробнее

Показать сообщение отдельно
Quantity
 Аватар для Quantity
12 / 12 / 1
Регистрация: 06.06.2012
Сообщений: 136
16.11.2012, 14:08  [ТС]     access violation at address
Остальной код :

Открытие :
C++
1
2
3
4
5
6
7
8
9
10
TMemoryStream *st = new TMemoryStream();
if(!OpenDialog1->Execute())
        return;
 
st->LoadFromFile(OpenDialog1->FileName);
 
HEAD *head = (HEAD*)st->Memory;
list1 = (LIST1*)&head[1];
list2 = (LIST2*)((unsigned int)list1 + 4 + list1->count * sizeof(DATA1));
list3 = (LIST3*)((unsigned int)list2 + 4 + list2->count * sizeof(DATA2));
Структура :
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
struct HEAD
 {
 int version;
 int timestamp;
 };
 
struct DATA1
 {
 unsigned int id;
 wchar_t name[32];
 int type;
 int num_params;
 int param1;
 int param2;
 int param3;
 };
struct LIST1
 {
 int size;
 int count;
 DATA1 items[];
 };
 
struct DATA2
 {
 unsigned int id;
 wchar_t name[32];
 };
struct LIST2
 {
 int size;
 int count;
 DATA2 items[];
 };
 
 struct DATA3
 {
 unsigned int id;
 wchar_t name[32];
 };
struct LIST3
 {
 int size;
 int count;
 DATA2 items[];
 };
Сохранение :
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
if (!SaveDialog1->Execute())
        return;
 
    st->~TMemoryStream();
 
 
 
    TFileStream  * tfile = new TFileStream(Main_Form->SaveDialog1->FileName,fmOpenReadWrite);
 
    tfile->Seek(0,0);
 
    tfile->WriteBuffer(&head, sizeof(*head));
    tfile->WriteBuffer(&list1, sizeof(*list1));
 
    tfile->~TFileStream();
 
    // Описание HEAD
    tfile->Write(&head->version, 4);
    tfile->Write(&head->timestamp, 4);
 
    // Описание LIST1
 
    tfile->Write(&list1->size, 4);
    tfile->Write(&list1->count, 4);
 
    // Описание DATA1
 
    tfile->Write(&list1->items->id, 4);
    tfile->Write(list1->items->name, 64);
    tfile->Write(&list1->items->type, 4);
    tfile->Write(&list1->items->param1, 4);
    tfile->Write(&list1->items->param2, 4);
    tfile->Write(&list1->items->param3, 4);
 
    ShowMessage("Файл успешно сохранен!");
Добавлено через 10 минут
Сохранение :
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
if (!SaveDialog1->Execute())
        return;
 
    st->~TMemoryStream();
 
 
 
    TFileStream  * tfile = new TFileStream(Main_Form->SaveDialog1->FileName,fmOpenReadWrite);
 
    tfile->Seek(0,0);
 
    // Описание HEAD
    tfile->Write(&head->version, 4);
    tfile->Write(&head->timestamp, 4);
 
    // Описание LIST1
 
    tfile->Write(&list1->size, 4);
    tfile->Write(&list1->count, 4);
 
    // Описание DATA1
 
    tfile->Write(&list1->items->id, 4);
    tfile->Write(list1->items->name, 64);
    tfile->Write(&list1->items->type, 4);
    tfile->Write(&list1->items->param1, 4);
    tfile->Write(&list1->items->param2, 4);
    tfile->Write(&list1->items->param3, 4);
 
    tfile->~TFileStream();
 
    ShowMessage("Файл успешно сохранен!");
Ошибся, вот такое сохранение. там 2 кода ничайно смешал)
 
Текущее время: 01:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru