• Где утечка памяти?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    for (size_t i = iters.size(); i < listsize; i++) {
        iters.push_back(new iterator(typesize));
      }

    для такого кода создания код удаления должен вызывать delete а не просто деструктор, т.е.
    for (size_t i = iters.size(); i > listsize; i--) {
            delete *iters.back();
            iters.pop_back();
          }


    iterator::~iterator() {
      for (stream::stream* s : usedbystreams) {
        s->killstream(0);
      }
      free(pointer);
      usedbystreams.clear();
    }

    И опять, ты вызвал s->killstream(0), привело ли это к удалению объекта на который указывает s?

    Вообще существуют инструменты для отладки работы с памятью, для gcc это прекрасный -fsanitize=address который покажет тебе при завершении программы, где была выделена утекшая память.
    Ответ написан
    Комментировать
  • Почему программа загружается в разных областях памяти?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему программа каждый раз занимает различные области памяти?

    Потому что современные ОС делают это намеренно, чтобы затруднить эксплуатацию уязвимостей в ПО. Это называется ASLR: address space layout randomization. Обычно есть способ отключить ASLR глобально либо для отлаживаемых программ, чтобы добиться воспроизводимости результатов.
    Так, например, в linux это делается глобально с помощью файла /proc/sys/kernel/randomize_va_space либо командой setarch -R для одного конкретного процесса. Отладчик gdb по умолчанию отключает ASLR для отлаживаемых программ.
    Ответ написан
    3 комментария
  • Что за шрифт на изображении?

    hint000
    @hint000
    у админа три руки
    Sofia Pro Regular
    Ответ написан
    Комментировать
  • На каких фриланс биржах можно сделать "лёгкий старт" в зарабатывании денег на заказах по PHP/MySQL?

    Adamos
    @Adamos
    Биржа - это возможность встретиться тому, кто готов заплатить за решение проблемы, и тому, кто готов ее решить.
    Вы пока что создадите больше проблем, чем решите... без умения самостоятельно выполнить хотя бы несложное и копеечное задание, но от начала до конца, ни о каких биржах речи быть не может. Вам нужны не базовые знания, а базовый опыт их применения. Хотя бы "тяп-ляп-вордпресс-продакшен".
    Изучение фреймворков, собственно, проблему только усугубит...
    Ответ написан
    Комментировать
  • Как научить принтер отрезать чек?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    отрез бумаги это одна из последовательностей байтов
    GS;V;0
    ESC;i
    ESC;d;0
    ESC;m

    возможно у вашего принтера другая команда
    CRM посылает в порт устройства байты.
    При печати html страницы участвует еще драйвер.

    И вот мне интересно какой драйвер на телефоне ?
    Да и посредник между сайтом и принтером для црм тоже интересен.
    Ответ написан
    3 комментария
  • Почему возможно объявление глобальной переменной структурного типа до объявления этого структурного типа?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему возможно объявление глобальной переменной

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

    В твоём втором примере struct interval b -- это определение переменной, выделяющее для неё место на стеке. Но его можно переписать, чтобы b тоже стало объявлением, например так:
    int main ()
    {
      extern struct interval b;
      struct interval 
      {
        int first;
        int second;
      };
    }


    Возвращаясь обратно к первому примеру, struct interval b; -- это tentative definition с внешней линковкой. Стандарт (С99) говорит о нём следующее (6.9.2:2):

    A declaration of an identifier for an object that has file scope without an initializer,
    and without a storage-class specifier or with the storage-class specifier static, constitutes
    a tentative definition. If a translation unit contains one or more tentative definitions for
    an identifier, and the translation unit contains no external definition for that identifier,
    then the behavior is exactly as if the translation unit contains a file scope declaration of
    that identifier, with the composite type as of the end of the translation unit, with an
    initializer equal to 0.


    Самое важное здесь -- as of the end of the translation unit, т.е. тип объекта из tentative definition таки должен быть определён, но не до появления этого tentative definition, а до конца единицы трансляции (или раньше, если вдруг встретится определение с инициализацией этого объекта).
    Ответ написан
    1 комментарий
  • Почему плохой интернет на Macbook Air?

    kawabanga
    @kawabanga
    Для начала проверьте, только ли у этого роутера проблемы с маком.

    А дальше, я уже писал тут несколько раз, но повторю.

    1) На старом маке (у меня 2013 late), у меня dir 300 отрубался, если я подключал мышку. Частота BT 2.4 совпадала с wifi.
    2) wifi даже если он поддерживает n 300 mbit, все равно работает на частоте n 150mbit. не помню точно откуда, но вот у маков такая особенность.

    Еще учтите, что ваш роутер дико старый. Если вам дома нужно хорошее wifi - ну купите вы хороший роутер домой. Они будут работать у вас ближайшие 10 лет отлично. По крайней мере у меня ни один за 15 лет не ушел из жизни по своей воле.
    Ответ написан
    3 комментария
  • Почему плохой интернет на Macbook Air?

    @Drno
    Я вижу два варианта, исходя из роутера(он простенький)
    Или мак при включении начинает качать обновления, и тем забивает тупо весь ВИФИ, роутер не справляется
    Или мак настролько стар, что подключается по стандарту G , чем опять же все устройства в сети "понижает" до этого стандарта устарешего

    Я бы попробовал использовать внешнюю современную вифи для мака и проверить
    ну или проверить загрузку инета при включении мака, если что то качает, то как докачает проблема решится)
    Ответ написан
    2 комментария
  • Shadow + cornerRadius + scaleAspectFit в imageView?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Чтобы фрейм UIImageView совпадал с размером изображения, вам нужно получить размеры UIImage. На практике получайте соотношение сторон UIImage, и ресайзите фрейм с этим соотношением.
    Теперь картинка всегда будет вписана в фрейм.
    Подумайте, это логично, подгонять фрейм под картинку, а не картинку под фрейм, если вы используете .scaleAspectFit.

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

    Тени
    Зависит от способа. Если активируете маску, то тени не будет видно. Делайте контейнер, в который помещаете UIImageView, для нее ставите маску. А тень ставим контейнеру.
    Ответ написан
    3 комментария
  • В чем разница между созданиями TextWatcher в Андроид на Kotlin?

    zagayevskiy
    @zagayevskiy Куратор тега Android
    Android developer at Yandex
    Правильный первый. Слово object имеет различные значения. В первом случае ты создаёшь объект анонимного класса, который реализует листенер. Во втором случае ты создаёшь синглтон textChangedListener типа textChangedListener(т.е. имена класса и его единственного инстанса совпадают. Кстати, поэтому обжекты-синглтоны обычно именуется с большой буквы.). Во втором случае, естественно, нельзя вызывать другие методы, т.к. обжект не является внутренним(inner) классом. Таким образом, он бесполезен чуть более, чем полностью.
    Ответ написан
    1 комментарий
  • Как в функции с помощью Switch перевести массив из Int -> String?

    @Sir0zha Автор вопроса
    func switchItUp(_ number: Int) -> String {
    return ["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"][number]
    } Вероятно самое простое решение, но без Switch
    Ответ написан
    1 комментарий
  • Как правильно сделать структуру?

    doublench21
    @doublench21 Куратор тега Swift
    Простой пример:

    2ffZng2.png

    Код
    let json = """
        [{
        "invoiceNumber": "FV/MON/X/369",
        "date": "2019-06-01 00:00:00",
        "dueDate": "2019-06-01 00:00:00",
        "overdue": true,
        "valueNoTax": 100,
        "valueWithTax": 123,
        "valueToPay": 123
        },
        {
        "invoiceNumber": "FV/MON/X/368",
        "date": "2019-06-01 00:00:00",
        "dueDate": "2019-06-01 00:00:00",
        "overdue": true,
        "valueNoTax": 100,
        "valueWithTax": 123,
        "valueToPay": 123
        },
        {
        "invoiceNumber": "FV/MON/X/367",
        "date": "2019-06-01 00:00:00",
        "dueDate": "2019-06-01 00:00:00",
        "overdue": true,
        "valueNoTax": 100,
        "valueWithTax": 123,
        "valueToPay": 123
        },
        {
        "invoiceNumber": "FV/MON/X/366",
        "date": "2019-06-01 00:00:00",
        "dueDate": "2019-06-01 00:00:00",
        "overdue": true,
        "valueNoTax": 100,
        "valueWithTax": 123,
        "valueToPay": 123
        },
        {
        "invoiceNumber": "FV/MON/X/363",
        "date": "2019-05-04 00:00:00",
        "dueDate": "2019-05-04 00:00:00",
        "overdue": true,
        "valueNoTax": 100,
        "valueWithTax": 123,
        "valueToPay": 123
        },
        {
        "invoiceNumber": "FV/MON/X/362",
        "date": "2019-05-04 00:00:00",
        "dueDate": "2019-05-04 00:00:00",
        "overdue": true,
        "valueNoTax": 100,
        "valueWithTax": 123,
        "valueToPay": 123
        },
        {
        "invoiceNumber": "FV/MON/X/361",
        "date": "2019-05-04 00:00:00",
        "dueDate": "2019-05-04 00:00:00",
        "overdue": true,
        "valueNoTax": 100,
        "valueWithTax": 123,
        "valueToPay": 123
        },
        {
        "invoiceNumber": "FV/MON/X/360",
        "date": "2019-05-04 00:00:00",
        "dueDate": "2019-05-04 00:00:00",
        "overdue": true,
        "valueNoTax": 100,
        "valueWithTax": 123,
        "valueToPay": 123
        }]
        """
    
        struct FakturyObject: Decodable {
          let date: String
          let dueDate: String
          let invoiceNumber: String
          let overdue: Bool // <---- ОШИБКА БЫЛА ТУТ! 
          let valueNoTax: Int
          let valueToPay: Int
          let valueWithTax: Int
        }
    
        let data = json.data(using: .utf8)
        let decoder = JSONDecoder()
        let parsedData = try! decoder.decode([FakturyObject].self, from: data!)
    Ответ написан
    1 комментарий
  • Офис или фриланс?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    В офис. На фрилансе без реального опыта делать особо нечего. Поучитесь в команде, приобретёте дополнительные полезные навыки
    Ответ написан
    Комментировать
  • Как создать указатель на функцию main?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    int main(void)
    {
        int (*pmain)(void) = main;
    }


    например int* func;

    Это указатель на int, а не на функцию.
    Ответ написан
    Комментировать
  • Как найти свою ц/а?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Для достижения успеха мало делать годный продукт, надо уметь его ещё продавать. А это отдельное, очень полезное искусство, которое нужно изучать. Вряд ли вам помогут какие-либо общие рекомендации без владения продажами.
    5c8b4032bf028955767631.png
    Ответ написан
    Комментировать
  • Книги по архитектуре баз данных для игр?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    База данных - это же инструмент для решения определённых задач.
    Мы же не знаем ваших задач, языка, платформы, архитектуры, нагрузки и прочих деталей.
    Вот я скажу Sqlite. Или Redis. Что вам это даст? Ничего
    Ответ написан
    Комментировать
  • Как скрыть изображение приложения когда его свернули?

    zagayevskiy
    @zagayevskiy Куратор тега Android
    Android developer at Yandex
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);


    в onCreate Активити
    Ответ написан
    Комментировать
  • Почему появилась ошибка No Activity found to handle Intent?

    zagayevskiy
    @zagayevskiy Куратор тега Android
    Android developer at Yandex
    Потому что на этом эмуляторе нет приложения, способного обработать такой интент. Нужно смотреть в список активити, способных обработать интент. Если он пуст, то показывать пользователю соответствующее сообщение. Также приложения, содержащие такие активити, могут быть отключены, так что нужно смотреть, что есть хотя бы один элемент с providerInfo.enabled == true. Также, есть китайцы, которые провайдят это поле неправильно, так что вызов стороннего приложения с таким интентом лучше в любом случае заворачивать в try..catch.
    Ответ написан
    Комментировать