[英]Static array of structs with pointers
我們有一系列這樣的結構:
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_
也是靜態的以及它們的位置(堆,堆棧)? 如果它們不是靜態的,那么如何使其變為靜態?
數組allocations
的alloc_memory_
成員是靜態的,但是指向的內存不一定是靜態的。
在您的情況下,由於您在main
使用numa_alloc_onnode
分配了它們,這意味着它們指向了動態存儲。
如果您也確實需要靜態存儲,則可以在結構之前定義內存:
static char buffer1[1024];
static char buffer2[2048];
static struct allocation allocations[] =
{ {1024, buffer1}, {2048, buffer2} };
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.