Как работает txm_module_object_allocate((void**)obj_ptr, sizeof(obj))?

Всякий раз, когда я пытаюсь создать объект (очередь, поток или пул байтов), я могу создать их только путем динамического выделения памяти; это не удается, если я попытаюсь выделить статическую память.

Я не могу найти txm_module_object_allocate API в любом месте документации.

//Works:
TX_BYTE_POOL* my_byte_pool=NULL;
txm_module_object_allocate(&my_byte_pool, sizeof(TX_BYTE_POOL));
tx_byte_pool_create(my_byte_pool, "Task Pool", free_memory_task, 16*1240);

//Fails:
TX_BYTE_POOL my_byte_pool;
tx_byte_pool_create(&my_byte_pool, "Task Pool", free_memory_task, 16*1240);

Во втором случае я всегда получаю ошибку, tx_byte_pool_create не смогли.

1 ответ

Да, txm_module_object_allocate ожидает, что первый аргумент будет указателем типа TX_BYTE_POOL . Итак, правильный синтаксис или вызываемая функция - это txm_module_object_allocate(&my_byte_pool, sizeof(TX_BYTE_POOL));

Другие вопросы по тегам