带指针的静态结构数组

时间:2016-04-19 22:48:26

标签: c arrays struct static numa

我们有一系列像这样的结构:

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_是否也是静态的,它们位于何处(堆,堆栈)?如果它们不是静态的,那么如何使它们静止?

1 个答案:

答案 0 :(得分:2)

数组alloc_memory_的{​​{1}}成员是静态的,但指向的内存不一定是静态的。

在您的情况下,由于您在allocations中使用numa_alloc_onnode分配了它们,这意味着它们指向动态存储。

如果你真的想要静态存储,你可以在结构之前定义内存:

main