0Xc0000374 куча была повреждена

У меня есть эта игра домино, которую я создал с помощью CPP. Во время игры я получаю эту ошибку:

Необработанное исключение в 0x76FF5934 (ntdll.dll) в Domino.exe: 0xC0000374: куча повреждена (параметры: 0x77011378).

Такая же ошибка, но время и место в коде, которое он ломает, различны, но код, который он ломает, всегда один и тот же:

Этот код встречается во всех местах, Stone – это класс i, созданный для представления камня домино.

Я не знаю, что случилось, я уверен, что это имеет какое-то отношение к памяти, но я понятия не имею, почему эта строка вызывает проблемы, я не ожидаю, что вы скажете мне, почему это происходит, я вижу полный код, но я надеюсь, вы могли бы попробовать и помочь мне с места для поиска.

Я пытаюсь написать многопоточную программу для назначения hw. Пока что все, что у меня есть в моей программе, это некоторый код для чтения набора файлов двоичных данных (предусмотренных для назначения) и чтения содержимого этих файлов в массив двумерных данных. Программа собирается без каких-либо ошибок, но когда я запускаю ее, она завершает работу после чтения имен файлов DAT из указанного файла метаданных. Я не могу понять, где я иду не так, и любая помощь будет оценена!

Это ошибка, которую я получаю:

«Необработанное исключение в 0x773a5c0c ​​(ntdll.dll) в MultiThreading.exe: 0xC0000374: куча была повреждена.»

«Необработанное исключение в 0x7730d1ed (ntdll.dll) в MultiThreading.exe: 0xC0000005: расположение чтения нарушения доступа 0x0000001e.»

Это мой код, и я уверен, что где-то там есть ошибка, но я новичок в программировании на C ++ и не могу ее найти: — /

Читайте также:  Что делать если MSI Afterburner не работает?

Я использую Visual Studio Community 2015 в системе Windows 10 x64. Программа настроена для Win32.

Абсолютно любая помощь или любые указания, которые могут помочь мне исправить это, будут очень, очень ценны.

Решение

Массивы в C ++ начинаются с индекса 0. Массив filename содержащий пять элементов содержит элементы filename[0] через filename[4] ,

В этом случае вы должны выделить массив из пяти строк, но вместо инициализации filename[0] через filename[4] , вы попытаетесь инициализировать filename[1] через filename[5] ,

поскольку filename[5] не существует, это приводит к неопределенному поведению. Наблюдавшийся сбой во время выполнения — один из вероятных результатов этого неопределенного поведения.

У меня есть эта игра домино, созданная с помощью CPP. Во время игры я получаю эту ошибку:

Необработанное исключение в 0x76FF5934 (ntdll.dll) в Domino.exe: 0xC0000374: Куча была повреждена (параметры: 0x77011378).

Те же ошибки, но сроки и место в коде, он ломает отличается, но код он разбивает на всегда то же самое:

Этот код можно найти во всех родах местах, Камень класса я создал, чтобы представить цепной камень.

Я понятия не имею, что это неправильно, я не уверен, что это что-то делать с памятью, но я понятия не имею, почему эта линия является причиной проблемы, я не жду, чтобы ты рассказал мне, почему это происходит, так как вы не можете увидеть полный код, но я надеюсь, что вы могли бы попробовать и помочь мне с местами для поиска.

Повреждение кучи , как правило , не вызвана строка кода , где оно было обнаружено. Вполне вероятно , что есть другое место в коде , где повреждение памяти происходящий который обнаруживается только при попытке выделить свой Stone массив. Проверьте переполнения буфера и другие места , где вы пишете в динамически распределяемой памяти.

Читайте также:  Телевизор сони мигает красная лампочка 6 раз

Имейте в виду, что когда-либо отладчик останавливается только говорит Вам, где был обнаружен ущерб, не где было сделано повреждение. Таким образом, я бы пошагово код и найти то, что происходит с вашим каменного класса. Его весьма вероятно, что там может быть ошибка в вашей структуре класса. Если класс разве слишком большой, опубликовать его и, возможно, он может быть поставлен диагноз?

Оцените статью
Добавить комментарий

Adblock detector