【发布时间】:2021-08-20 18:15:00
【问题描述】:
例如。
int x;
x 分配了 4 字节的内存。我想要的是为x 分配超过 4 个字节,例如。 8. 对于整数,我可以很容易地使用long long int,但是结构呢?
struct Es {
int a;
int b;
}
我可以添加char useless[<Extra memory>],但我想指定在分配时要分配多少内存。例如。
struct Es es; //I want to specify how much to allocate here
我说的是实际分配,而不是堆栈对齐。
它必须是堆栈,并且必须在分配时指定。
【问题讨论】:
-
欢迎您!你能解释一下你的用例吗?为什么要这样做?
-
“别问我将如何使用它。”,我们不得不这样做。这闻起来强烈是XY problem。如果您的程序内存管理不善,请使用 valgrind 之类的工具来找出位置。
-
我们之所以这么问,是因为这样的事情非常非正统,可能不可能,通常当有人问这样的事情时,是因为他们不知道其他方法更简单或更强大。
-
@Addison 在编译时。
-
我会说,如果有人被要求解释他们的推理或目标时感到恼火,或者求助于“我很聪明,只要相信”,他们可能不知道自己在做什么。我”。
标签: c memory stack allocation