Читать нарушение доступа при чтении буферного блока (C ++)C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Читать нарушение доступа при чтении буферного блока (C ++)

Сообщение Anonymous »

Я пытаюсь внедрить класс буферных блоков в C ++, а также другой класс, который обрабатывает наименее используемый (LRU) подход к буферам. Моя проблема заключается в том, что когда я пытаюсь получить доступ к конкретным ChARS в буферных блоках, VS2017 выпускает ошибку в линейное пространство = BufferBlocks [1] [(i + POS) % 4]; :

Код: Выделить всё

Exception thrown: read access violation.
Bufferblock::operator[](...) returned 0xCDCDD173.
Это странно, потому что, насколько я могу судить, Block (в классе Bufferblock ) в конструкторе инициатизируется, чтобы быть массивом char 4096 Chars, каждый из которых установлен на NULL (хотя я также пытался настроить их на «A» и то же самое). Но затем, когда я использую sizeof (block) , он печатает «4».

Код: Выделить всё

mydatafile.txt
-просто действительно длинный текстовый файл-его содержимое не должно иметь значения):
#include
#include

using namespace std;

class Bufferblock {
public:

int blockID;
char* block;
int blockSize;

Bufferblock()
{
blockSize = 4096;
blockID = 1;
char *block = new char[4096];
for (int i = 0; i < 4096; i++)
{
block = (char)NULL; // this works fine, looping through 4096 chars in block.
}
}

char& operator[](int index)
{
std::cout
(Обратите внимание, что этот проект очень сильно на первом этапе разработки. Я не беспокоюсь о утечках памяти или на самом деле что -то, кроме того, чтобы выяснить это. Это делает меня вещей, что проблема может быть с инициализацией. Разве я не инициализировал его правильно?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... er-block-c
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»