簡體   English   中英

帶指針的結構的靜態數組

[英]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_也是靜態的以及它們的位置(堆,堆棧)? 如果它們不是靜態的,那么如何使其變為靜態?

數組allocationsalloc_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM