诺瓦星云面试汇总

1、C语言向一个内存地址写值,

int main() {
    int value = 42;
    int *ptr = (int *)0x12345678;  // Replace with the desired memory address
    *ptr = value

2、申请释放内存

申请内存

int *dynamicArray  = (int*)malloc(size *sizeof(int));

释放内存  

     free(dynamicArray)

    

3、makefile

makefile 我只会模仿改写makefile的基本思路 是查第一行目标文件有没有的依赖文件,如果没有,就在下面的代码的目标文件中查找,有就执行相应的代码

clean:
       rm -f myprogram
 行 make clean 就会执行 clean 目标,删除名为 myprogram 的文件

all: main.c utils.c   (all 默认)
     gcc -o myprogram main.c utils.c
 test: myprogram(test  目标名字   myprogram  依赖名字)
            ./myprogram test_input.txt
执行make   执行all下命令
执行 make test  执行test下命令

引入库
  

1、写好路径

2、库和路径添加到链接命令中

导入模板
 
include common.mk  ,这样makefile就导入模板了

4、socket   I/O复用

select函数,可以监听的数目有限制,并且每次都调用select函数的时候都需要将fd集合从用户态拷贝到内核态 ,同时每次调用select都需要在内核遍历传递进来的所有fd,这个开销在fd很多时也很大

 

2、po'll 开销也比较大,但是因为fd使用链表这样的话,数目限制就不存在了

 

3、epoll将主动轮询变成被动通知,当有事情发生时,接收到通知后再去处理,也就是epoll会把哪个流发生哪种i/o事件通知我们,epoll是事件驱动(每个事件关联到fd),epoll底层是红黑树,epoll内部使用事件驱动的机制,内核中维护了一个链表来记录就绪事件,当某个socket有事件发生时,通过回调函数内核将其加入到就绪事件链表中,

当用户调用epoll_wait()函数时,只会返回有事件发生的文件描述符的个数,不需要像select和poll那样进行轮询,大大提高了检测的效率

5、strcpy与strcat

strcpy  地址拷贝

strcat   值拷贝

6、内存的分配

1、堆(地址从上到下递减)

2、栈(地址从上到下递增)

3、全局变量区\静态变量区(未初始化bss  初始化data)

4、文本区(代码本文 + 常量)

7、new 和  malloc

两个分配的都是在堆空间,new 不需要指定空间大小,new 分配完还会调用构造函数初始化

8、Tcp和udp的区别

TCP不能直接传输,需要连接具有可靠性,适合高质量传输,但是速度慢
UDP可以直接传输,但是不安全,速度也快

9、嵌入式linux的调试方式

应用中 printf  
驱动内核中  printk

gdb调试运行

10、iic  上拉电阻的作用

1、高电平

 2、开漏输出

11、指针常量与常量指针

指针常量 :指针指向的是一个常量

常量指针:指针本身是一个常量

12、内存泄漏

是指程序在申请内存后无法释放已申请的内存空间,导致系统无法及时收回内存并且分配给其他进程使用

1、动态分配的内存没有被释放:当使用关键字 new 或 malloc 分配内存时,应该使用对应的 delete 或 free 函数来释放内存。如果没有正确释放,就会导致内存泄漏

2、丢失对分配内存的指针

3、c++中子类析构函数没有设置为虚函数

13、野指针

野指针不是NULL指针,是指向被释放的或者访问受限的内存的指针

1、指针变量没有被初始化,任何刚创建的指针不会自动成为NULL

2、指针被free或delete之后,没有置NULL

3、指针操作超越了变量的作用范围,比如要返回指向栈内存的指针或引用,因为栈内存在函数结束时会被释放

14、链表和数组的区别

访问元素效率:

  • 数组:由于数组的元素在内存中是连续存储的,访问元素的效率非常高,只需要通过索引即可。

  • 链表:链表的元素分散在内存中不同位置,访问元素需要按照节点指针的顺序遍历,效率较低。

15、反转链表

需要三个指针,一个pre指针指向反转的前一个节点,cur指向要反转的节点,然后设置有一个temp指针指向需要反转的下一个节点,用来使得cur指针移动,因为我们反转之后,无法使用next指针访问到后一个节点

16、Linux gcc编译命令

1、预处理 gcc -E hello.c -o hello.i(头文件展开,进行源文件中的宏替换,注释过滤)

2、编译    gcc -S hello.i -o hello.s(将源文件编译成汇编文件)

3、汇编    gcc -c hello.s -o hello.o(将汇编文件转换成二进制文件)

4、链接   gcc hello.o -o hello(将二进制文件打包成可执行文件

17、spi(多少根线,时序等) iic(多少根线,时序等)

18、有没有用过示波器,逻辑分析仪

19、说一下server端网络编程的步骤

20、static,const,volatile关键字

21、static关键字在c语言中和c++中有何不同

  1. 类的静态成员变量和函数: 在 C++ 语言中,static 关键字被广泛用于类的静态成员变量和静态成员函数。静态成员变量是类的所有对象共享的变量,而静态成员函数不属于任何特定对象,可以直接通过类名调用。

  2. 函数内的静态变量: C++ 中的函数内的静态变量的作用与 C 语言类似,仍然将变量的作用域限制在函数内,并保持其值在函数调用之间不变。

  3. 命名空间中的静态变量: 在 C++ 中,static 关键字还可以用于命名空间内的静态变量,这将限制变量的作用域在命名空间内,并且在不同文件中可以共享

22、问了一个结构体问占用内存大小,如何改变内存大小(更改成员变量位置,或者取消结构体对齐)

23、栈和队列的区别

24、编译完的程序在内存中的分布

25、如果大量频繁的申请堆空间会发生什么?

内存泄漏

堆碎片化

性能下降

系统崩溃

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/66208.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络编程——MAC地址、IP地址和子网掩码

MAC地址、IP地址和子网掩码 一、MAC地址:硬件身份证 1、MAC地址的概念 MAC地址,即媒体访问控制地址(Media Access Control Address),是一个用于唯一标识网络设备的物理地址。每个网络接口卡(NIC&#xf…

go错误集(持续更新)

1.提示以下报错 Build Error: go build -o c:\Users\Administrator\Desktop__debug_bin2343731882.exe -gcflags all-N -l . go: go.mod file not found in current directory or any parent directory; see ‘go help modules’ (exit status 1) 解决办法: go …

Android Framework底层原理之WMS的启动流程

一 概述 今天,我们介绍 WindowManagerService(后续简称 WMS)的启动流程,WMS 是 Android 系统中,负责窗口显示的的服务。在 Android 中它也起着承上启下的作用。 如下图,就是《深入理解 Android》书籍中的…

《Kali渗透基础》14. 无线渗透(四)

kali渗透 1:相关工具1.1:Aircrack-ng1.1.1:airmon-ng1.1.2:airodump-ng1.1.3:aireplay-ng1.1.4:airolib-ng1.1.5:bessid-ng 1.2:JTR1.3:Evil Twin Attacker1.4&#xff1…

clickhouse调研报告2

由Distributed表发送分片数据 clickhouse分区目录合并 clickhouse副本协同流程 clickhouse索引查询逻辑 clickhouse一级索引生成逻辑(两主键) clickhouse的data目录下包含如下目录: [root@brfs-stress-01 201403_10_10_0]# ll /data01/clickhouse/data total 4 drwxr-x---…

【webpack】动态配置cdn,多模板入口项目搭建

动态配置多模板 按照这个模板创建项目 安装glob,获取目录下的文件名称 封装方法utilsConfig,动态生产 page // pages 多入口配置 const path require("path");// glob 是 webpack 安装时依赖的一个第三方模块,该模块允许你使用 * 等符号, …

RaabitMQ(三) - RabbitMQ队列类型、死信消息与死信队列、懒队列、集群模式、MQ常见消息问题

RabbitMQ队列类型 Classic经典队列 这是RabbitMQ最为经典的队列类型。在单机环境中,拥有比较高的消息可靠性。 经典队列可以选择是否持久化(Durability)以及是否自动删除(Auto delete)两个属性。 Durability有两个选项,Durable和Transient。 Durable表…

图像 检测 - DETR: End-to-End Object Detection with Transformers (arXiv 2020)

图像 检测 - DETR: End-to-End Object Detection with Transformers - 端到端目标检测的Transformers(arXiv 2020) 摘要1. 引言2. 相关工作2.1 集预测2.2 Transformers和并行解码2.3 目标检测 3. DETR模型References 声明:此翻译仅为个人学习…

【VisualGLM】大模型之 VisualGLM 部署

目录 1. VisualGLM 效果展示 2. VisualGLM 介绍 3. VisualGLM 部署 1. VisualGLM 效果展示 VisualGLM 问答 原始图片 2. VisualGLM 介绍 VisualGLM 主要做的是通过图像生成文字,而 Stable Diffusion 是通过文字生成图像。 一种方法是将图像当作一种特殊的语言进…

SAS-数据集SQL水平合并

一、SQL水平合并基本语法 sql的合并有两步,step1:进行笛卡尔乘积运算,第一个表的每一行合并第二个表的每一行,即表a有3行,表b有3行,则合并后3*39行。笛卡尔过程包含源数据的所有列,相同列名会合…

mysql进阶篇(二)

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

3.2用互斥元保护共享数据

概述 于是,你有一个类似于上一节中链表那样的共享数据结构,你想要保护它免于竞争条件以及可能因此产生的不变量损坏。如果你可以将所有访问该数据结构的代码块标记为互斥的(mutually exclusive),岂不是很好?如果任何线…

DuDuTalk:AI语音工牌在家装行业门店销售场景有何应用价值?

随着科技的不断发展,人工智能技术的应用也越来越广泛。作为人工智能技术的一种应用形式,AI语音工牌在家装行业门店销售场景中起到了重要的作用。本文将从AI语音工牌的定义、功能、应用场景以及优势等方面,探讨它在家装行业门店销售场景的应用…

Qt多线程编程

本章介绍Qt多线程编程。 1.方法 Qt多线程编程通常有2种方法: 1)通过继承QThread类,实现run()方法。 2)采用QObject::moveToThread()方法。 方法2是Qt官方推荐的方法,本文介绍第2种。 2.步骤 1)创建Worker类 这里的Worker类就是我们需要…

【Docker】Windows下docker环境搭建及解决使用非官方终端时的连接问题

目录 背景 Windows Docker 安装 安装docker toolbox cmder 解决cmder 连接失败问题 资料获取方法 背景 时常有容器方面的需求,经常构建调试导致测试环境有些混乱,所以想在本地构建一套环境,镜像调试稳定后再放到测试环境中。 Windows …

音视频--视频数据传输

参考文献 H264码流RTP封装方式详解:https://blog.csdn.net/water1209/article/details/126019272H264视频传输、编解码----RTP协议对H264数据帧拆包、打包、解包过程: https://blog.csdn.net/wujian946110509/article/details/79129338H264之NALU解析&a…

汽车维修保养记录查询API:实现车辆健康状况一手掌握

在当今的数字化世界中,汽车维修保养记录的查询和管理变得前所未有地简单和便捷。通过API,我们可以轻松地获取车辆的维修和保养记录,从而实现对手中车辆健康状况的实时掌握。 API(应用程序接口)是进行数据交换和通信的标…

RocketMQ第二课-核心编程模型以及生产环境最佳实践

一、回顾RocketMQ的消息模型 ​ 上一章节我们从试验整理出了RocketMQ的消息模型&#xff0c;这也是我们使用RocketMQ时最直接的指导。 二、深入理解RocketMQ的消息模型 1、RocketMQ客户端基本流程 <dependency><groupId>org.apache.rocketmq</groupId>&…

以http_proxy和ajp_proxy方式整合apache和tomcat(动静分离)

注意&#xff1a;http_proxy和ajp_proxy的稳定性不如mod_jk 一.http_proxy方式 1.下载mod_proxy_html.x86_64 2.在apache下创建http_proxy.conf文件&#xff08;或者直接写到conf/httpd.conf文件最后&#xff09; 3.查看server.xml文件 到tomcat的安装目录下的conf/serve…

【word密码】word设置只读,如何取消?

Word文件打开之后发现是只读模式&#xff0c;那么我们如何取消word文档的只读模式呢&#xff1f;今天给大家介绍几种只读模式的取消方法。 属性只读 有些文件可能是在文件属性中添加了只读属性&#xff0c;这种情况&#xff0c;我们只需要点击文件&#xff0c;再次查看文件属…