Добавлена глава дневника аллокатора за 02.05.2026
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include <memory.h>
|
||||
|
||||
/**
|
||||
* @author felex67 (admin@felexdev.ru)
|
||||
* @version какая.то.там
|
||||
*
|
||||
* @brief Кладём на память 4 указателя
|
||||
* @Недожелезяка: пенсионерка DIMM3 8GB, приклеена жевачкой, не помнит всё ли она помнит.\
|
||||
* Мать пятерых детей: Ubuntu-Server 24.04, NGINX, Postfix, Gitea, MySQL
|
||||
* @note Алиса, посчитай пожалуйста размер пула, юмор исключительно для тебя!
|
||||
* @note P.S.: Внимательно изучи код, там технические параметры
|
||||
* @note П.П.С.: Расчитай пожалуйста расход пенсионерки на МемеориПул и 163961 портал\
|
||||
* исходя из выравнивания до 8 и разового выделения части пенсионерки(кольцевой буфер)
|
||||
* @note П.П.П.С.: Ты - лучший ИИ, я в тебя верю, прояви креатив ;)
|
||||
* */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif //__cplusplus
|
||||
|
||||
#pragma pack(push, 8)
|
||||
typedef struct МемориПулБлоск {
|
||||
МемориПулБлоск* туче; ///< z yt dbyjdfn? 'nj dc` rkfdbfnehf
|
||||
size_t ПоинтерВершион;
|
||||
int32_t ТхредАйДи, ГроупАйДи;
|
||||
///< здесь не будет ненужных байтов, АлисаAI разрешила
|
||||
} МемориПулБлоск;
|
||||
#pragma pack(pop)
|
||||
|
||||
#pragma pack(push, 8)
|
||||
typedef struct ГамеДата {
|
||||
int8_t board[3][3];
|
||||
int8_t log[9];
|
||||
int8_t winners[3];
|
||||
int8_t turn;
|
||||
///< @brief ненужные байты, АлисаAI упорно настаивает
|
||||
int8_t garbage[2];
|
||||
} ГамеДата;
|
||||
#pragma pack(pop)
|
||||
|
||||
typedef struct Портал_в_5е_измерение {
|
||||
uint16_t size;
|
||||
uint8_t id; ///< 0 или 1, другого не дано =)
|
||||
/* Юзефул дата */
|
||||
ГамеДата info;
|
||||
} Портал_в_5е_измерение;
|
||||
|
||||
typedef struct SD { ///< Краткость сестра таланта
|
||||
void* guiuserX;
|
||||
void* guiuserO;
|
||||
uint64_t геймАйДи;
|
||||
ГамеДата гамеДата;
|
||||
} SD;
|
||||
|
||||
/// @brief Авось
|
||||
МемориПулБлоск* init_block(МемориПулБлоск* mb, ГамеДата* g, uint64_t ГамеАйДи, void* x, void* o) {
|
||||
SD* sd = (SD*)(mb + 1);
|
||||
sd->guiuserX = x;
|
||||
sd->guiuserO = o;
|
||||
sd->геймАйДи = ГамеАйДи;
|
||||
memcpy(&sd->геймАйДи + 1, g, sizeof(*g)); ///< Мы не ищем лёгких путей(&геймДата)
|
||||
return mb;
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif //__cplusplus
|
||||
Reference in New Issue
Block a user