![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 62
一如年少模样呀
这个作者很懒,什么都没留下…
展开
-
最近工作中遇到的堆栈溢出的问题
第一种解决办法:在VC++6种依次选择Project->Setting->Link,在Category中选择output,在Reserved中输入16进制的栈内存大小如:0x10000000,然后点ok就可以了。Windows程序的内存机制大概是这样的:全局变量(局部的静态变量本质也属于此范围)存储于堆内存,该段内存较大,一般不会溢出;第二种情况比较常见了,我就是犯了这个错误,我在函数里定义了一个局部变量,是一个类对象,该类中有一个大数组,大概是1.5M。2>使用堆内存增加栈内存。1>增加栈内存的数目。原创 2023-04-01 11:19:27 · 558 阅读 · 0 评论 -
C++新特性:lambda表达式
C++ Lambda表达式是一种匿名函数,可以方便地创建和传递函数对象。Lambda表达式最初是在C++11标准中引入的,可以使用Lambda表达式来代替函数指针和Functor对象。其中,capture list是一个可选的捕获变量列表,用于在Lambda表达式中访问外部变量,parameter list是参数列表,与普通函数的参数列表类似,return type是返回值的类型,可以省略,如果省略则会自动推断,function body是Lambda表达式的主体语句,与普通函数语法类似。原创 2023-03-29 22:41:15 · 570 阅读 · 0 评论 -
C++回调函数详解
在上面的代码中,我们定义了一个add函数并将其地址赋值给了一个函数指针变量func_ptr。在Windows平台下,我们需要将该函数注册为窗口类的成员,并在程序运行时,通过调用CreateWindow函数来创建一个窗口。回调函数是指由用户实现的,用作参数传递给另一个函数的函数。通过使用函数指针,我们可以把一个函数作为参数传递给另一个函数,或者把一个函数赋值给另一个指针。一个典型的回调函数包含两个函数,一个是函数指针的声明,另一个是被调用的函数。函数中将回调函数作为参数传递,并在其中调用回调函数。原创 2023-03-29 15:21:23 · 535 阅读 · 0 评论 -
C++11新特性:移动语义
移动构造函数和移动赋值操作符可以接受右值引用作为参数,并且可以将对象的内部资源指针转移给另一个对象,而不需要进行复制。传统的拷贝构造函数和赋值操作符会对对象进行完全的复制,但有时候我们并不需要完全的复制,只需要把对象的资源所有权转移给另一个对象即可。最后,我们打印了所有对象的原始数据以及大小,可以看到移动语义成功地将内部资源的所有权转移给了另一个对象,而不需要进行复制。在这个例子中,我们定义了一个简单的字符串类,并实现了它的移动构造函数和移动赋值操作符。我们用一个带有字符串数据的对象来初始化对象。原创 2023-03-29 11:33:13 · 223 阅读 · 0 评论