华为OD技术面八股文真题_C++_3

华为OD技术面八股文真题_C++_3

文章目录

变量的声明和定义的区别

  • 变量的声明是告诉编译器变量的名称和类型,不分配存储空间;
  • 变量的定义会为变量分配存储空间并建立实体。
  • 一个变量可以在多个地方声明,但只能在一个地方定义。 使用 extern 修饰的变量通常是声明,表示该变量在其它文件中定义,但 如果 extern 变量带初始化,则该语句仍然属于定义。

内存泄露是什么意思?怎么避免内存泄露

内存泄漏是指程序在动态申请内存后,后续失去对该内存的控制,导致这块内存无法被释放,从而造成内存资源浪费的现象。内存被申请了,却释放不了

内存泄漏的危害如下:

  1. 程序内存占用不断增大,导致系统可用内存减少,性能下降。
  2. 严重时可能导致程序崩溃。
  3. 服务长期运行最终会导致宕机。

常见避免内存泄漏的方案:

  1. RAII(资源获取即初始化)使用对象生命周期自动管理资源。
  2. 尽量使用智能指针/STL容器代替裸指针。
  3. new/delete,malloc/free保证成对出现。
  4. delete将指针置空。

怎么排查内存泄漏,遇到内存泄漏情况,一般怎么解决

  1. 通过监控系统观察系统中运行中内存是否持续上涨,且无法回落。其次在测试环境稳定复现<

Read more

C++ —— 哈希详解 - 开散列与闭散列

C++ —— 哈希详解 - 开散列与闭散列

江河入海,知识涌动,这是我参与江海计划的第6篇。 目录 1. 哈希的概念 1.1 直接定址法 1.2 哈希冲突  1.3 负载因子 1.4 哈希函数  1.4.1 除法散列法/除留余数法   1.4.2 乘法散列法  1.4.3 全域散列法 1.5 处理哈希冲突 1.5.1 开放定址法(闭散列) 1. 线性探测(挨着查找) 2. 二次探测(跳跃着查找) 3. 双重散列 2. 闭散列实现哈希表 2.

By Ne0inhk

Visual C++ 6.0中文版安装包下载教程及win11安装教程

本文分享的是Visual C++ 6.0(简称VC++6.0)中文版安装包下载及安装教程,关于win11系统下安装和使用VC++6.0使用问题解答,大家在安装使用的过程中会遇到不同的问题,如遇到解决不了的问题请给我留言! 一、安装包的下载 vc6.0安装包下载连接: https://pan.quark.cn/s/710dc0efe636 二、安装vc++6.0 1.鼠标右键解压到“VC++ 6.0”安装包,解压后如图所示: 2.双击Steup.exe,进行安装; 3.点击下一步 4.更改路径,建议不要安装在C盘(默认盘符),可以选择其他的盘符,点击浏览进行更改盘符。 5.选择C盘(默认盘或系统盘)以外的盘符。

By Ne0inhk
C++ 继承入门(下):友元、静态成员与菱形继承的底层逻辑

C++ 继承入门(下):友元、静态成员与菱形继承的底层逻辑

🔥小叶-duck:个人主页 ❄️个人专栏:《Data-Structure-Learning》 《C++入门到进阶&自我学习过程记录》《算法题讲解指南》--从优选到贪心 ✨未择之路,不须回头 已择之路,纵是荆棘遍野,亦作花海遨游 目录 前言 一. 友元 —— 友元关系不可继承   1、错误版本   2、正确版本 二. 静态成员 —— 继承体系中静态成员的共享性 三. 多继承及菱形继承问题:本质特点与解决方案   1、单继承与多继承模型   2、菱形继承:虚继承解决“数据冗余”与“二义性”     2.1 菱形继承出现的坑(解决二义性问题)     2.2 虚继承:彻底解决菱形继承问题     3、多继承中指针偏移问题 友元,静态成员,

By Ne0inhk
C++之基于正倒排索引的Boost搜索引擎项目介绍

C++之基于正倒排索引的Boost搜索引擎项目介绍

1. 为什么我们要写项目 1.1 把理论知识转化为实际能力 计算机专业的课程(如编程语言、数据结构、算法、操作系统等)多以理论和抽象概念为主,而项目是 “用起来” 的过程。比如学了数据结构中的链表、树,只有在做通讯录管理系统、文件索引工具等项目时,才能真正理解它们在实际场景中的作用;学了多线程,在开发简单的并发程序(如聊天软件)时,才会明白锁机制、线程同步的实际意义。 1.2 培养解决复杂问题的思维 项目开发中总会遇到各种 “意料之外” 的问题:代码逻辑漏洞、性能瓶颈、兼容性问题等。解决这些问题的过程,能倒逼你学会拆解问题、查阅文档(如官方手册、技术博客)、调试代码(用 IDE 断点、日志分析),甚至借鉴开源项目的思路 —— 这些都是未来工作中不可或缺的 “实战思维”。 1.3 理解完整的开发流程

By Ne0inhk