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

Ошибка "Попытка чтения в запрещенную память" при работе с файлами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Связные списки. Определить количество узлов между двумя выбранными указателями http://www.cyberforum.ru/cpp-beginners/thread1178373.html
#include <iostream> #include <cstdlib> using namespace std; struct Node { int data; Node* next;
C++ Remove_if для std::list Здравствуйте! Помогите мне разобраться,пожалуйста.Перечитал кучу всего,но так и не понял ,что можно писать в аргументе метода remove_if. #include<iostream> #include<list> #include<algorithm> using namespace std; void printlist(list<int> a) { copy(a.begin(),a.end(),ostream_iterator<int>(cout," ")); } http://www.cyberforum.ru/cpp-beginners/thread1178352.html
C++ Как считать n-ое слово в строке
Как найти любое (n-ное) слово в строке? Слова(группа слов) разделяются запятыми
Перенос из directx8 в directx9, ошибка в SetVertexShader C++
Доброе время суток. Есть кусок кода написанного для directx8 #include <d3dx8.h> #include <mmsystem.h> #include <C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\WinNT.h> #include <d3dx8mesh.h> #include <Windows.h> #include "C:\Program Files (x86)\Microsoft DirectX SDK (August 2009)\Include\dinput.h"
C++ Переставить элементы в этом массиве http://www.cyberforum.ru/cpp-beginners/thread1178318.html
Ввести массив чисел с задаваемым количеством элементов и некоторое число. Без использования другого массива переставить элементы в этом массиве так, чтобы в начале массива оказались элементы не меньше некоторого числа, а в конце массива - элементы меньше этого числа, с сохранением порядка их взаимного расположения в исходном массиве. Вывести преобразованный массив. Пример вводимых данных: 8...
C++ Описать структуру "Сотрудник" Описать следующую структуру Сотрудник Ф.И.О Дата поступления с вариантной частью записи: Студент Сотрудник Другое Средний балл Личный номер подробнее

Показать сообщение отдельно
TheStigger
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 14

Ошибка "Попытка чтения в запрещенную память" при работе с файлами - C++

16.05.2014, 23:22. Просмотров 538. Ответов 15
Метки (Все метки)

Нужно хранить в файле данные со структуры и считывать их.
Перепробовал кучу вариантов (fopen и ofstream/ifstream), постоянно одна и та же ошибка.
"Необработанное исключение типа "System.AccessViolationException" в CourseWork1.exe
Дополнительные сведения: Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена."
Пробовал сделать тоже с обычной строкой, все равно ошибка. Ниже приведу код части программы
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
...
string testchar;
...
//Главная форма
    private: System::Void MyForm_Load(System::Object^  sender, System::EventArgs^  e) {
                 testchar = "hello";
                 ExportToFile2();
                 ImportFromFile2();
 
void ExportToFile2(void)
    {
        FILE  *fp;
        register int i;
        if ((fp = fopen("cash", "ab+")) == NULL) {
            MessageBox::Show("Error while opening the file.\n");
            return;
        }
        if (fwrite(&testchar, sizeof(string), 1, fp) != 1)
            MessageBox::Show("Error while writing to file.\n");
        fclose(fp);
    }
void ImportFromFile2(void)
    {
        string buff;
        buff[0] = '\0';
        FILE  *fp;
        register int i;
 
        if ((fp = fopen("cash", "rb")) == NULL) {
            MessageBox::Show("Error while opening the file.\n");
            return;
        }
        if (fread(&buff, sizeof(string), 1, fp) != 1)
        {
            MessageBox::Show("Error while reading the file.\n");
        }
        //testchar = buff;
        /*String^ sys_str = gcnew String(testchar.c_str());
        MessageBox::Show("test   "+sys_str);*/
        fclose(fp);
    }
На этапе выхода из последней процедуры выскакивает ошибка.
Пишу в Visual Studio 2013 в windows forms
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru