c语言
文章平均质量分 61
一如年少模样呀
这个作者很懒,什么都没留下…
展开
-
最近工作中遇到的堆栈溢出的问题
第一种解决办法:在VC++6种依次选择Project->Setting->Link,在Category中选择output,在Reserved中输入16进制的栈内存大小如:0x10000000,然后点ok就可以了。Windows程序的内存机制大概是这样的:全局变量(局部的静态变量本质也属于此范围)存储于堆内存,该段内存较大,一般不会溢出;第二种情况比较常见了,我就是犯了这个错误,我在函数里定义了一个局部变量,是一个类对象,该类中有一个大数组,大概是1.5M。2>使用堆内存增加栈内存。1>增加栈内存的数目。原创 2023-04-01 11:19:27 · 601 阅读 · 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 · 612 阅读 · 0 评论 -
C++11新特性:移动语义
移动构造函数和移动赋值操作符可以接受右值引用作为参数,并且可以将对象的内部资源指针转移给另一个对象,而不需要进行复制。传统的拷贝构造函数和赋值操作符会对对象进行完全的复制,但有时候我们并不需要完全的复制,只需要把对象的资源所有权转移给另一个对象即可。最后,我们打印了所有对象的原始数据以及大小,可以看到移动语义成功地将内部资源的所有权转移给了另一个对象,而不需要进行复制。在这个例子中,我们定义了一个简单的字符串类,并实现了它的移动构造函数和移动赋值操作符。我们用一个带有字符串数据的对象来初始化对象。原创 2023-03-29 11:33:13 · 253 阅读 · 0 评论 -
浅谈C++单例模式
一 简介单例模式,指的是某一个类,只允许实例出一个对象存在。而实现单例模式有懒汉式和饿汉式。饿汉式指的是在创建类时就初始化好对象,,而懒汉式指的是在需要使用到对象实例时,才进行初始化对象。二 实现方式1.最基本的实现方式#include #include class SingLeton{private:SingLeton() {};static SingLeton *p;public:static SingLeton *initstance();};SingLeton* Sing原创 2022-03-22 20:58:34 · 1682 阅读 · 0 评论 -
C++学习路线
语言本身的学习C语言:除了最最基础的语法:变量、条件、循环、字符串、数组、函数、结构体等之外C语言最最最最最重要的那就是:指针、内存管理,以后企业里开发就靠它俩吃饭,这也是检验C语言掌握情况的两大标准推荐书籍:《C Primer Plus》、《C和指针》、《C专家编程》C++:C++和C语言确实是不同的语言,但是C++确实是对C语言的延伸,可以理解为在C语言里加入了面向对象的特性。因为只有面向对象特性的加持,代码才能更好的复用、扩展和工程化,这是大型项目的必备要素除了C语言所有的底子之外,还需原创 2022-03-18 19:23:37 · 4696 阅读 · 1 评论 -
2021-07-20
linux 下c语言读写锁实现线程同步问题#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <unistd.h>pthread_rwlock_t rwlock;void *pthread_one(void arg){/ 分别测试先上写锁和先上读锁的情况 *///pthread_rwlock_wrlock(&rwlock);pthread_rwlock_原创 2021-07-20 14:26:37 · 76 阅读 · 0 评论