- 一名优秀的程序员是一名出色的侦探,每一次调试都是尝试破案的过程。所以当我们程序出现问题一点要调试这样才能搞懂问题出在哪里 一名优秀的程序员是一名出色的侦探,每一次调试都是尝试破案的过程。所以当我们程序出现问题一点要调试这样才能搞懂问题出在哪里
- @TOC 前言C++ STL(Standard Template Library)是C++标准库中的一个强大的工具集,提供了各种常用的数据结构和算法。其中之一就是Stack(栈),是一种后进先出(LIFO)的数据结构。使用栈可以很方便地管理数据的顺序,它具有简单、高效和易于使用的特点。本文将介绍Stack栈的基础使用方法,帮助初学者快速掌握它的概念和用法。 一、栈是什么?当我们使用一摞盘子叠... @TOC 前言C++ STL(Standard Template Library)是C++标准库中的一个强大的工具集,提供了各种常用的数据结构和算法。其中之一就是Stack(栈),是一种后进先出(LIFO)的数据结构。使用栈可以很方便地管理数据的顺序,它具有简单、高效和易于使用的特点。本文将介绍Stack栈的基础使用方法,帮助初学者快速掌握它的概念和用法。 一、栈是什么?当我们使用一摞盘子叠...
- @TOC 前言在C++11标准中引入了许多新特性和改进,其中包括空指针(nullptr)、long long类型、char16_t和char32_t类型。这些功能为C++提供了更强大和更灵活的功能。 一、空指针(nullptr) 1.1概念解释在早期版本的C++中,我们使用NULL宏表示空指针,但它实际上是一个整数常量。C++11引入了nullptr关键字,用于表示空指针。它是一个特殊的关键... @TOC 前言在C++11标准中引入了许多新特性和改进,其中包括空指针(nullptr)、long long类型、char16_t和char32_t类型。这些功能为C++提供了更强大和更灵活的功能。 一、空指针(nullptr) 1.1概念解释在早期版本的C++中,我们使用NULL宏表示空指针,但它实际上是一个整数常量。C++11引入了nullptr关键字,用于表示空指针。它是一个特殊的关键...
- 初学者在用 vs 2022的时候难免会出现 scanf 报错的问题!那么为什么会出现这样的问题呢?这篇文章帮你全面解答! 初学者在用 vs 2022的时候难免会出现 scanf 报错的问题!那么为什么会出现这样的问题呢?这篇文章帮你全面解答!
- generator的主要的效果就是产生一个输出后,停在原地,直到再次被调用。python自身就带有generator,是一个重要特性,带来了很多便捷。但是c++本身不直接支持generator。如果一定要用的话,利用goto在循环中停止,是可行的。虽然goto普遍被大家诟病,但由于c++基本语法与基础库的局限性,在产生器这种场景,也许goto还不错。#include <iostream>cl... generator的主要的效果就是产生一个输出后,停在原地,直到再次被调用。python自身就带有generator,是一个重要特性,带来了很多便捷。但是c++本身不直接支持generator。如果一定要用的话,利用goto在循环中停止,是可行的。虽然goto普遍被大家诟病,但由于c++基本语法与基础库的局限性,在产生器这种场景,也许goto还不错。#include <iostream>cl...
- getline() 方法从 cin 输入流缓冲区中读取一行字符串。在此基础上,getline() 方法还适用于读取指定文件中的一行数据,本节就给大家做详细的讲解。我们知道,getline() 方法定义在 istream 类中,而 fstream 和 ifstream 类继承自 istream 类,因此 fstream 和 ifstream 的类对象可以调用 getline() 成员方法。当文... getline() 方法从 cin 输入流缓冲区中读取一行字符串。在此基础上,getline() 方法还适用于读取指定文件中的一行数据,本节就给大家做详细的讲解。我们知道,getline() 方法定义在 istream 类中,而 fstream 和 ifstream 类继承自 istream 类,因此 fstream 和 ifstream 的类对象可以调用 getline() 成员方法。当文...
- TLS(Thread Local Storage)用来在进程内部每个线程中存储私有的数据。每个线程都会拥有独立的TLS存储空间,可以在TLS存储空间中保存线程的上下文信息、变量、函数指针等。TLS其目的是为了解决多线程变量同步问题,声明为TLS变量后,当线程去访问全局变量时,会将这个变量拷贝到自己线程中的TLS空间中,以防止同一时刻内多次修改全局变量导致变量不稳定的情况,先来看一段简单的案例... TLS(Thread Local Storage)用来在进程内部每个线程中存储私有的数据。每个线程都会拥有独立的TLS存储空间,可以在TLS存储空间中保存线程的上下文信息、变量、函数指针等。TLS其目的是为了解决多线程变量同步问题,声明为TLS变量后,当线程去访问全局变量时,会将这个变量拷贝到自己线程中的TLS空间中,以防止同一时刻内多次修改全局变量导致变量不稳定的情况,先来看一段简单的案例...
- RDTSC时钟检测同样可实现反调试检测,使用时钟检测方法是利用rdtsc汇编指令,它返回至系统重新启动以来的时钟数,并且将其作为一个64位的值存入EDX:EAX寄存器中,通过运行两次rdstc指令,然后计算出他们之间的差值,即可判定对方是否在调试我们的程序。可以利用时钟检测技术来检测程序是否被调试器附加,其实现基本思路如下:获取当前时间戳 T1,即通过执行 rdtsc 指令获取当前 CPU ... RDTSC时钟检测同样可实现反调试检测,使用时钟检测方法是利用rdtsc汇编指令,它返回至系统重新启动以来的时钟数,并且将其作为一个64位的值存入EDX:EAX寄存器中,通过运行两次rdstc指令,然后计算出他们之间的差值,即可判定对方是否在调试我们的程序。可以利用时钟检测技术来检测程序是否被调试器附加,其实现基本思路如下:获取当前时间戳 T1,即通过执行 rdtsc 指令获取当前 CPU ...
- 首先这是一种比较奇特的反调试思路,通过检测自身父进程来判定是否被调试,原理非常简单,我们的系统在运行程序的时候,绝大多数应用程序都是由Explorer.exe这个父进程派生而来的子进程,也就是说如果没有被调试其得到的父进程就是Explorer.exe的进程PID,而如果被调试则该进程的父进程PID就会变成调试器的PID值,通过对父进程的检测即可实现检测是否被调试的功能。#include <W... 首先这是一种比较奇特的反调试思路,通过检测自身父进程来判定是否被调试,原理非常简单,我们的系统在运行程序的时候,绝大多数应用程序都是由Explorer.exe这个父进程派生而来的子进程,也就是说如果没有被调试其得到的父进程就是Explorer.exe的进程PID,而如果被调试则该进程的父进程PID就会变成调试器的PID值,通过对父进程的检测即可实现检测是否被调试的功能。#include <W...
- STARTUPINFO 结构体,可以用来指定新进程的主窗口外观风格、背景颜色、标题等信息,也可以用来实现反调试技术。通常情况下,我们可以将STARTUPINFO结构体中的dwFlags成员设置为STARTF_DEBUGONLYTHISPROCESS,以防止调试器附加到当前进程。设置了STARTF_DEBUGONLYTHISPROCESS后,如果尝试通过调试器附加到该进程,则调试器将直接失败并... STARTUPINFO 结构体,可以用来指定新进程的主窗口外观风格、背景颜色、标题等信息,也可以用来实现反调试技术。通常情况下,我们可以将STARTUPINFO结构体中的dwFlags成员设置为STARTF_DEBUGONLYTHISPROCESS,以防止调试器附加到当前进程。设置了STARTF_DEBUGONLYTHISPROCESS后,如果尝试通过调试器附加到该进程,则调试器将直接失败并...
- CheckRemoteDebuggerPresent 也是一个微软提供的反调试函数,该函数可以在本地或者远程进程中使用。函数接收两个参数进程句柄和一个指向布尔值的指针。如果指定的进程正在被调试,则函数会把指向布尔值的指针设为 TRUE,否则设为FALSE。#include <stdio.h>#include <windows.h>// 定义指针typedef BOOL(WINAPI *CHE... CheckRemoteDebuggerPresent 也是一个微软提供的反调试函数,该函数可以在本地或者远程进程中使用。函数接收两个参数进程句柄和一个指向布尔值的指针。如果指定的进程正在被调试,则函数会把指向布尔值的指针设为 TRUE,否则设为FALSE。#include <stdio.h>#include <windows.h>// 定义指针typedef BOOL(WINAPI *CHE...
- 关于在 C 和 C++ 中 struct 的区别时,你可以从以下几个方面进行回答:1.默认访问权限:2.在 C 中,struct 中的成员默认是公开的,意味着结构体外部可以直接访问成员。3.在 C++ 中,struct 中的成员同样默认是公开的,与 C 保持一致。这与 class 关键字中的默认私有访问不同。4.继承和访问控制:5.在 C 中,struct 不支持继承的概念,也没有访问控制(... 关于在 C 和 C++ 中 struct 的区别时,你可以从以下几个方面进行回答:1.默认访问权限:2.在 C 中,struct 中的成员默认是公开的,意味着结构体外部可以直接访问成员。3.在 C++ 中,struct 中的成员同样默认是公开的,与 C 保持一致。这与 class 关键字中的默认私有访问不同。4.继承和访问控制:5.在 C 中,struct 不支持继承的概念,也没有访问控制(...
- 4. 只出现一次的数字 II题目链接: link思路讲解这道题还是让我们找出数组中只出现一次的那个数字,但是与第一题不同的是,其余数字均出现三次。那我们用第一题的方法肯定是不行了,那我们可以怎么做呢?我们后面学了unordered_map的话用unordered_map其实可以很容易解这道题,不过我们现在还没学。那这里我就用了一种比较暴力的方法,也很好理解:怎么做呢?遍历数组,一次取每个元素... 4. 只出现一次的数字 II题目链接: link思路讲解这道题还是让我们找出数组中只出现一次的那个数字,但是与第一题不同的是,其余数字均出现三次。那我们用第一题的方法肯定是不行了,那我们可以怎么做呢?我们后面学了unordered_map的话用unordered_map其实可以很容易解这道题,不过我们现在还没学。那这里我就用了一种比较暴力的方法,也很好理解:怎么做呢?遍历数组,一次取每个元素...
- get() 是 istream 类的成员函数,它有多种重载形式,不过本文只介绍最简单最常用的一种:int get();此函数从输入流中读入一个字符,返回值就是该字符的 ASCII 码。如果碰到输入的末尾,则返回值为 EOF。EOF 是 End of File 的缩写。istream 类中从输入流(包括文件)中读取数据的成员函数,在把输入数据都读取完后再进行读取,就会返回 EOF。EOF 是在... get() 是 istream 类的成员函数,它有多种重载形式,不过本文只介绍最简单最常用的一种:int get();此函数从输入流中读入一个字符,返回值就是该字符的 ASCII 码。如果碰到输入的末尾,则返回值为 EOF。EOF 是 End of File 的缩写。istream 类中从输入流(包括文件)中读取数据的成员函数,在把输入数据都读取完后再进行读取,就会返回 EOF。EOF 是在...
- 函数指针的概念你了解嘛?他是怎么调用的以及实例应用是怎么样的?本篇文章给你全部讲解清楚,让你轻松学会函数指针! 函数指针的概念你了解嘛?他是怎么调用的以及实例应用是怎么样的?本篇文章给你全部讲解清楚,让你轻松学会函数指针!
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签