За последние 24 часа нас посетили 22375 программистов и 1026 роботов. Сейчас ищут 700 программистов ...

C++ Module AV Memory

Тема в разделе "Прочие вопросы по PHP", создана пользователем Ligren, 29 сен 2020.

Метки:
  1. Ligren

    Ligren Новичок

    С нами с:
    29 сен 2020
    Сообщения:
    3
    Симпатии:
    0
    Доброго времени суток. Сегодня столкнулся со странностями в написание модуля для PHP на C++

    Странный вылет при выделение памяти

    PHP:
    1. TestC* ptr = (TestC*)zend_object_alloc(sizeof(TestC), class_type);
    К примеру, я могу 6 раз создать 1 - 2 класса, и следующие создание приводит к ошибке
    Сама структура ничего такого не имеет, всего лишь 2 поля
    PHP:
    1. struct TestC {
    2.     void* Obj;
    3.     zend_object     zo;
    4. };

    Полный код тут https://pastebin.com/Mb6xGNDk

    Ругается в функции zend_mm_alloc_small в файле zend_alloc.c на строке
    PHP:
    1. heap->free_slot[bin_num] = p->next_free_slot;
    Снимок экрана (19).png

    Кто нибудь знает, что это ? И почему так происходит. Ведь модуль создаётся по всем канонам PHP7