gpt4 book ai didi

c++ - 堆栈对象的最大大小

转载 作者:搜寻专家 更新时间:2023-10-31 01:47:40 24 4
gpt4 key购买 nike

我想提供一个具有以下 C++ 结构的 API:

struct fixed_string64 {
char array[64];
};
typedef fixed_string64 st64_t;

大多数人告诉我,做任何占用大量堆栈空间的事情通常不是一个好主意,但是“很多”到底是多少?

在 C++11 中,我们有类似 is_stack_hungry<st64_t>::value 的东西吗? ?

最佳答案

堆栈的大小是实现定义的,我不知道从系统/或编译器获取该信息的标准方法。但是,大多数编译器应该允许您设置堆栈大小(如 gcc 中的 --stack)。

但是,“让堆栈尽可能大”绝对不是我的建议 - 如果您需要这样做,那您就做错了。

例如,在您的示例中,您可以只提供构造函数和析构函数来分配和释放内存。

struct fixed_string64 {
char* array;

fixed_string64(){
array = new char[64];
}


~fixed_string64(){
delete [] array;
}
};

关于c++ - 堆栈对象的最大大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18921021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com