C++數組會導致崩潰我目前正在使用未使用STL容器構建的特定庫。在將某些函數重構爲類時,我遇到了基於以下模式的堆棧溢出。如果成員的類
class Base
{
float values[1920 * 1080]; // causes overflow
public:
Base() {}
};
int main()
{
float values[1920 * 1080]; // does not
Base t;
}
我知道你可以動態分配內存空間爲Base::values
,但爲什麼它不main
導致堆棧溢出,但在Base
,爲什麼堆棧空間顯得如此的Base
小得多?也許這很明顯,我只是想念。
'float values [1920 * 1080];'被淘汰爲「未使用的變量」?或者堆棧足夠大以容納1920 * 1080浮點數,但不足以容納1920 * 1080浮點數?只是我的假設) – WindyFields
如果您只在main()中保留這兩行中的一行,是否會導致堆棧溢出? – KjMag
@KjMag只要'Base t'離開'main()',在當前數組大小爲'Base :: values'的情況下總會導致崩潰,無論'float value [']是否存在。 – Alexander