Задать вопрос
  • Почему у меня пропадает число, которое я подаю при инициализации класса?

    maaGames
    @maaGames
    Погроммирую программы
    BigInteger(int num): BigInteger()

    так нельзя делать. Вообще странно, что в принципе компилируется, я даже не знаю, во что оно компилируется. Напрмиер, хоть вызван конструктор с парамтером, отрабатывает конструктор по умолчанию и инициализирует нулём.
    Ещё должно бы с ошибками памяти упасть, ты выделяешь память через alloc, а освобождаешь через delete. Вернись к основам, перечитай главу про динамическую память в С++.
    Ответ написан
    Комментировать
  • Почему у меня пропадает число, которое я подаю при инициализации класса?

    @Furax
    Здравствуйте. У вас множество логических ошибок, рекомендую запустить под отладчиком и идти по шагам, разбираясь, что идёт не так. Без этого такой код Вы, боюсь, не запустите. Первое место, где выполнение идёт не так - в функции int_len(), которая для вычисления количества цифр проверяет текущее значение на '>9', хотя оно изначально отрицательно. Скорее всего, сюда уже модуль числа должен приходить. Дальше тоже есть ошибки, которые нужно исправлять по одной.

    Ещё очень резануло глаз, что у Вас класс работает с динамической памятью, но не имеет копирующих/перемещающих конструкторов и операторов ++ (почитайте). В таком виде это нормально работать не будет - либо добавьте нужные конструкторы/операторы, либо не используйте вручную динамическую память (заверните в vector).
    Ответ написан
    Комментировать
  • Компилятор выдаёт ошибку при попытке вызвать sizeof() относительно моего массива. Как исправить ошибку?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    В C параметр функции не может быть массивом, только указателем. Синтаксис "имя с квадратными скобками" несёт тот же смысл, что и "имя со звёздочкой" когда речь идёт о параметрах функции. Если внутри функции взять sizeof от такого параметра результат будет равен sizeof от указателя. Это очень распространённая ошибка и компилятор говорит тебе об этом. Если тебе нужен размер массива переданного в функцию -- передавай его отдельно, например отдельным параметром.

    sizeof(dict)/sizeof(const char)

    Здесь ещё одна ошибка: dict -- это массив указателей (на самом деле указатель на такой массив, но по крайней мере, ты ожидал массив указателей), но ты делишь размер массива на размер const char а не на размер const char *. Во избежание таких ошибок для вычисления размера массива обычно пишут sizeof(dict)/sizeof(dict[0]).
    Ответ написан
    Комментировать
  • Почему функция не возвращает значения?

    @oneLEAM
    Предлагаю вам убрать декоратор перед def calc и положите эту функцию куда нибудь повыше.
    А там где вы просите ввести мат. действие вместо того что у вас стоит поставьте это:
    bot.register_next_step_handler('Введите любой пример или математическое действие',  calc)

    Вроде должно работать
    Ответ написан
    1 комментарий