- 博客(1654)
- 资源 (8)
- 收藏
- 关注
原创 【C++ 内存管理】静态分配和动态分配
②内存区域:堆区或者栈区(栈可以通过函数_alloca进行动态分配,不过注意,所分配空间不能通过free或delete进行释放)。①分配时机:运行时动态申请(如 malloc, new)和释放(如 free, delete)。④大小可变:内存大小在运行时确定,可动态调整(如 realloc)。在编译阶段确定内存大小和生命周期,由编译器自动分配和释放。②内存区域:数据段(全局变量或者静态变量)和栈区。④大小固定:内存大小在编译时已知,不可动态调整。①分配时机:程序启动时分配,程序结束时释放。
2025-07-06 23:31:35
192
原创 std::forward作用
是C++11引入的函数模板,主要用于(perfect forwarding),即保持参数原有的左值(lvalue)或右值(rvalue)引用属性,解决模板参数传递中的值类别丢失问题。12。
2025-07-06 23:22:22
491
原创 golang 协程 如何中断和恢复
在 Go 语言中,协程(也称为 goroutine)是通过go关键字启动的轻量级线程。由于 goroutine 的调度是由 Go 运行时管理的,直接停止一个正在执行的 goroutine 是不可能的,这与操作系统线程不同。但是,你可以通过一些策略来实现“中断”和“恢复”的行为,尽管这不是传统意义上的停止和恢复。
2025-07-06 23:11:24
255
原创 栈溢出的原因及解决办法, 堆栈
在编程中,栈是一种用于存储临时变量和函数调用信息的内存区域。栈溢出是指当程序向栈中压入过多数据时,超出了栈的容量限制,导致数据覆盖栈帧的情况。栈溢出可能会导致程序崩溃、安全漏洞以及其他意外行为。
2025-07-05 22:18:04
785
原创 error: invalid new-expression of abstract class type ‘testing::NiceMock<MockProxy>’ 146 | { ::new
NiceMock<...>:这是 Google Mock 提供的一个包装类,用于将 mock 类的行为设为“nice”,即对未预期的调用不报错。✅ MockProxy 是一个正常的 mock 类(可能继承自 testing::Test 或使用了 MOCK_METHOD 宏)abstract class type:表示你试图 new 一个抽象类(含有纯虚函数的类)。mock 类中某些方法没有被正确实现(通常是遗漏了 MOCK_METHOD 的定义)MockProxy:你的 mock 类名。
2025-07-03 15:25:31
141
原创 C++静态成员函数访问非静态成员的四种方法
这样在你回调函数的时候,你可以通过这个来让本身不能访问成员非静态变量的静态函数(太拗口)来访问非静态成员变量。有一个很取巧的办法,就是。
2025-07-02 13:58:51
187
原创 error: ‘using element_type = class xxxx::abc’ {aka ‘class xxxxx::abc’} has no member named ‘gmock_te
error: ‘using element_type = class xxxx::abc’ {aka ‘class xxxxx::abc’} has no member named ‘gmock_test’; did you mean ‘test’?报这个错误是因为 用的是父类的指针,而父类没有这个成员函数.
2025-06-26 21:26:18
99
原创 cmake include 写法
message(STATUS "配置目标: ${target}")message(STATUS "目标类型: ${target_type}")print_target(mylib) # 调用自定义函数。
2025-06-26 15:08:31
369
原创 libnids 入侵检测
1 2 Libnids的核心功能与特性 网络流量捕获与分析。 3 5 攻击行为检测:识别TCP端口扫描、IP分片攻击等潜在威胁。2 3 开发与部署 依赖环境:需配合Libpcap(数据包捕获)和Libnet(数据包构造)使用,支持类Unix系统及Windows(通过WinPcap适配)。2 3 TCP数据流重组。2 4 入侵检测支持。2 4 典型应用场景 网络嗅探与协议分析:捕获并解析网络通信内容,例如提取明文传输的账号密码。
2025-06-25 15:37:52
145
原创 gtest testing::Mock::VerifyAndClear
如果你在一个自定义的 mock 类中使用了,你需要确保你的类继承自 Google Mock 的Mock类,并正确实现了该方法。public:// 自定义实现,确保已正确实现此方法。
2025-06-23 11:10:55
214
原创 git rebase abort 命令详解
记住,作为 Comate,我一直在这里为你提供编程和技术问题的帮助。如果你有任何疑问或需要进一步的解释,请随时告诉我。简而言之,它允许你放弃一个不成功的或正在进行的。操作后,可能会遇到各种冲突或问题,导致你无法继续或不想继续这个。操作,并将工作目录和暂存区恢复到。操作,并将工作目录和暂存区恢复到。命令用于取消当前正在进行的。这个命令会立即取消当前的。
2025-06-16 10:26:06
426
原创 AUTOSAR自适应平台Persistency模块(一)
或者通过使用OpenKeyValueStorage和OpenFileStorage可以分别在同一个Key Value存储或文件存储的独立线程中调用。persistency功能集群提供了对底层文件系统的自适应应用程序的访问,存在两个原因:(1)persistency功能集群使平台对存储实施访问控制和管理。persistency为自适应平台的应用程序和其他功能集群提供了将信息存储于Adaptive Machine的非易失性存储器中的机制。* Persistency可以保证存储数据的完整性。
2025-05-26 10:56:21
291
原创 C/C++的存储期
如果对象具有静态存储期,那么它在程序的执行期间一直存在。文件作用域变量具有静态存储期。C对象有4种存储期:静态存储期、线程存储期、自动存储期、动态分配存储期。我们到目前为止使用的局部变量都是。
2025-05-25 14:19:25
185
原创 为什么size_t重要,size_t的大小
size_t类型是一个类型定义,通常将一些无符号的整形定义为size_t,比如说unsigned int或者unsigned long,甚至unsigned long long。这种设计保证了size_t能够容纳系统上最大可能的对象大小,从而提高代码的可移植性和有效性。前言:使用size_t可能会提高代码的可移植性、有效性或者可读性,或许同时提高这三者。,即32位无符号整型。在64位系统上,size_t通常被定义为。在32位系统上,size_t通常被定义为。,即64位无符号整型。
2025-05-25 13:00:21
180
原创 unique_ptr的release 不会释放内存
注意到unique_ptr::release()返回值是T*,调用release放弃所有权后,可以将内存空间交给别人来接管。reset 既放弃所有权,还会释放内存资源(调用删除器)。如果有参数,还会接管参数对应的新资源。release 只会放弃所有权,不会释放内存资源;可以看到,并没有调用class A的析构函数。如果想要释放内存,请调用。
2025-05-25 08:16:26
139
原创 智能指针shared_ptr的解引用不等于原生指针的解引用
shared_ptr(包括unique_ptr)是有作用域的,超出作用域或者手动调用reset、std::move,可能导致所指对象已释放或者移交给别的智能指针,也就是指针为空。本质上,还是调用的.get()获得原生指针后,再解引用。也就是说,当不确定shared_ptr是否空时,如果需解引用,需要先进行空指针检查(这点类似于原生指针)。首先,明白一点:shared_ptr的解引用,类似于原生指针的解引用,都是得到指针所指的对象。但是,指针的解引用有一个前提,那就是指针本身不能为空,否则可能导致程序崩溃。
2025-05-25 08:14:18
220
原创 windows 10 做服务器 其他电脑无法访问,怎么回事?
一般我们会先打开win10自己的防火墙策略,但是容易忽略 电脑直接 路由器上的防火墙,此时也需要查看一下,可以尝试先关闭路由器防火墙,如果可以了,再 设置路由器上的防火墙规则。
2025-05-17 20:19:30
445
原创 TLV格式
TLV格式将数据划分为三个主要部分:Tag(标签)、Length(长度)和Value(值)。这种方式在电信、计算机网络、智能卡、物联网等领域被广泛应用,尤其在那些需要高效、灵活且可扩展的数据编码方案的领域12。
2025-05-15 13:39:27
456
原创 TTPoE协议,tcp
Tesla在TTPoE的硬件实现中,采用了类似CPU的设计理念,特别是在数据包处理上,采用了类似于指令重排序缓冲区(reorder buffer)中的“指令退休”机制。此外,TTPoE仍然保留了TCP协议中通过丢包来控制拥塞的思路,但由于其固定窗口的设计,TTPoE不需要像TCP那样频繁地调整窗口大小,从而减少了计算和管理的复杂性。为此,TTPoE采用了一种固定的拥塞窗口机制,即通过硬件在SRAM缓冲区中记录已发送的数据,缓冲区的大小直接决定了拥塞窗口的大小。重要特性是其设计完全由硬件实现,
2025-05-14 10:12:54
382
原创 hab机制
是一种用于高通平台上的主机与虚拟机之间的通信机制,主要用于实现宿主操作系统(host OS)与虚拟机操作系统(guest OS)之间的数据共享和通信。HAB机制允许虚拟机访问宿主操作系统管理的硬件资源,例如输入设备、摄像头等。
2025-05-13 17:50:40
289
原创 powershell下载
Release v7.5.1 Release of PowerShell · PowerShell/PowerShell · GitHub
2025-05-12 07:44:58
142
原创 git 工具
Git教程 Git Bash详细教程-CSDN博客Download – TortoiseGit – Windows Shell Interface to Git
2025-04-26 22:45:05
586
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人