c++: volatile遇到类的非默认构造,一下就把栈给爆掉了

GKatHere GKatHere 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
// vs2022, c++ 14,
struct  volatileB
{
public:
	int a;
	char m[0x300000];
	volatile int va = 0;
};
struct volatileA
{
	volatileB vbb{ 1 };
};


int main()
{
	std::cout << "Hello World!\n";
    //  即使是用new在堆上分配
    //      volatileA的构造函数,仍然需要使用超过其结构大小的栈
	volatileA* va = new volatileA;

	getchar();
}

 

...全文

相关推荐

C++中volatile关键字及常见的误解总结

主要给大家介绍了关于C++中volatile关键字及常见的误解的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

weixin_38664532

C++中volatile和mutable关键字用法详解

主要介绍了C++中volatile和mutable关键字用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

weixin_38530995

C++中const、volatile、mutable使用方法小结

主要介绍了C++中const、volatile、mutable使用方法小结,需要的朋友可以参考下

weixin_38624557

聊聊C++的mutable和volatile

C++中修饰数据可变的关键字有三个:const、volatile和mutable。const比较好理解,表示其修饰的内容不可改变(至少编译期不可改变),而volatile和mutable恰好相反,指示数据总是可变的。mutable和volatile均可以和const搭配使用,但两者在使用上有比较大差别。 mutable mutable只能作用在类成员上,指示其数据总是可变的。不能和const 同时修饰一个成员,但能配合使用:const修饰的方法中,mutable修饰的成员数据可以发生改变,除此之外不应该对类/对象带来副作用。 考虑一个mutable的使用场景:呼叫系统中存有司机(Driver)

weixin_38618521

C++中volatile关键字的使用详解以及常见的误解

为什么使用volatile ? C/C++中的 volatile 关键字 和const对应,用来修饰变量,通常用于建立语言级别的memory barrier。这是BS在“The C++ Programming Language”对volatile修饰词的解释: A volatile specifier is a hint to a compiler that an object may change its value in ways not specified by the language so that aggressive optimizations must be avoided.

weixin_38545117
评论 10
收藏 已收藏
分享
返回顶部
GKatHere
C++ 语言 65,214 成员 250,514 内容