Nano Hash - криптовалюты, майнинг, программирование

C++: ошибка утверждения отладки, строка afx.inl 122

вот описание проблемы.

У меня определен следующий класс..

class classA {
public:
  CString aString;
};
extern classA theApp;

в другой функции класса я делаю это

theApp.aString = "test string";

затем я получаю сообщение об ошибке во время выполнения, ошибка отладки, строка 122 afx.inl; пожалуйста, порекомендуйте.

Я также пытался выполнить распределение внутри класса, но он не помечает ту же ошибку времени выполнения.

 class classA {
    public:
      CString aString;
      void set_string()
      {
          aString = "test string 2";
      }
    };
    extern classA theApp;

    //in another class function

    theApp.set_string();

визуальная версия С++: VС++ 6.0


  • Выполняется ли присваивание aString во время создания другой глобальной переменной (т. е. до создания приложения)? Если это так, вы можете получить доступ к theApp.aString до того, как theApp будет построено. 29.06.2016
  • Было бы очень полезно узнать полное сообщение об ошибке. Вы можете нажать «Повторить попытку» в отладчике, а затем перейти к стеку, где находится утверждение, и вы должны увидеть полное сообщение. Если вы уже работаете в отладчике, он должен быть в окне вывода. 29.06.2016

Ответы:


1

afx.inl`, строка 122: ASSERT(m_pchData != NULL); возврат ((CStringData*)m_pchData)-1; }

Похоже, что ваша переменная theApp не инициализирована должным образом, так как ее члены aString внутреннего буфера имеют значение NULL, проверьте, не выполняете ли вы присваивание перед ее инициализацией.

Также убедитесь, что у вас установлен последний пакет обновления (SP6) для Visual Studio 6.

29.06.2016
  • я установил функцию внутри функции classA 29.06.2016
  • i set a function inside classA function Это требует уточнения, так как это не имеет смысла, как написано. Вы вызываете функцию-член classA, но если этот вызов сделан из конструктора или инициализатора другой глобальной переменной, то возможно возможно, что theApp еще не было создано в этот момент (поскольку ответ выше и предыдущий комментарий предлагают). 29.06.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..