У нас есть массив структур, как этот:Статический массив структур с указателями
struct allocation
{
size_t alloc_size_;
char* alloc_memory_;
};
static struct allocation allocations[] =
{{1024, NULL},{2048, NULL},};
позже в main()
это члены alloc_memory_
инициализируются с помощью numa_alloc_onnode()
.
Так что вопрос: есть alloc_memory_
также статический и где они расположены (куча, стек)? Если они не статичны, то как сделать их статическими?
Ok спасибо. В этом случае мне понадобится макрос, который будет генерировать код типа 'static char bufferN [SIZE];'. Считайте, что 'static allocation allocations allocations []' above инициализируется как 'статические распределения распределения структуры [] = ALLOCATIONS;', где 'ALLOCATIONS' определяется во время компиляции пользователем, как' -D'ALLOCATIONS = {{1024, buffer1} , {2048, buffer2}} 'Таким образом, макросу пришлось бы анализировать '{{1024, buffer1}, {2048, buffer2}}' и генерировать код: 'static char buffer1 [1024]; static char buffer2 [2048]; '. Не могли бы вы указать мне на такой макрос? Спасибо – Dimon
Я предлагаю не передавать код через макросы, вы можете передать размер буфера, хотя статический 'char buffer [N};' и '-DN = 1024' – fluter