Я портирую игру, встроенную в c, для использования opengl по причинам переноса. Все шло хорошо, пока по некоторым причинам функции malloc в игре перестали работать.
Я искал ответ на этот вопрос. Единственное, что я обнаружил, это то, что malloc возвращает NULL. Очень простой malloc, который создает простую структуру из нескольких байтов.
Я сделал несколько попыток и написал команду внутри цикла. И мое удивление состояло в том, что это провалилось первые 10 раз, но после этого команда сработала и игра началась. Структура была создана несколько раз после этого без проблем.
Я бы сказал, чтобы оставить все как есть, но я уверен, что что-то не так, и в других системах может работать неправильно. Вот почему я хочу спросить, какая у меня проблема, почему и как ее избежать. Среда не очень дружелюбная, и мне не хватает средств отладки, поэтому я был бы признателен за максимально возможное количество деталей.
спасибо.
EDIT:
Код прост.
ObjectBase* newcoin;
newcoin= (ObjectBase*)calloc(1,sizeof(ObjectBase));
в то время как структура ObjectBase очень мала. Не более 200 байт.
Аппаратное обеспечение - компьютер под управлением Windows 7 с 4 ГБ или памятью. Даже при этом ошибка:
Visual C++ CRT: Not enough memory to complete call to strerror
Раньше все работало нормально.
Больше проблем. У меня такая же проблема при загрузке файлов с диска. Это происходит от 10 до 15 раз, а затем работает правильно.
Проблема случается всегда. Каждый раз, когда я перезапускаю приложение, оно вылетает.