嵌入式面试笔试那点事1:2025.3.17

博主也是通过了简历初筛,然后HR发来了编程题和专业问题(当然,不是正式面试,只是线上初步交流,在回答完毕后在规定时间内发回邮箱),给大家分享一下面试官问的问题

1. 开放性问题:叙述一次你解决了一个特别复杂的问题。你是如何发现问题的?又是如何解决的?

这个问题博主也是讲了一下以前竞赛中遇到的技术难题和一些智障问题,这里不多讲了。。。

2. 开放性问题:你认为优秀的嵌入式开发人员应该具备什么样的特质?这些特质你掌握的如何?将来你还会怎样提升这些特质?

特质无非就是技术能力,态度,等等等等,这些喂给AI直接整一套模板出来记住,大部分面试闻到这种问题也是大差不差。

3. 专业性问题:用你自己的话讲讲你认识的C语言中的指针与内存管理,指针在实际项目的使用项目中容易导致哪些错误?

博主回答:

在我看来,指针是存储了另一个变量内存地址的变量,我们可以通过操作指针间接操访问内存中的数据。内存管理指程序运行时对计算机内存的分配,使用,释放的过程,例如栈、堆等,以及在嵌入式编程中经常涉及的全局变量和局部变量问题也与内存有关。例如,在使用FreeRTOS进行任务创建时需要在函数中对任务进行内存分配,如果分配内存过小,就会导致溢出,分配过大则会导致一定的浪费,因此合理进行内存管理可以提高程序性能;亦或者在STM32中库函数封装了结构体,使用指针访问基地址来对寄存器进行读写操作。指针是内存管理的工具,通过使用指针我们可以精确操控内存的分配与释放,例如,使用malloc分配内存时返回一个指向分配内存的指针,而free释放内存时需要传递一个指向要释放内存的指针。

在我接触以及了解的指针问题大概有以下几点

  1. 内存泄漏,例如在使用malloc分配内存后没有正确使用指针释放。
  2. 重复释放,例如对malloc分配的内存连续重复使用free释放
  3. 类型不匹配,两个指针类型不一样就进行赋值
  4. 在指针指向的内存被释放后该指针仍然指向该地址,这部分内存可能已经被分配给其他用途。

 但是实际上远不止这几种,这几种大概只是博主当时能想到的,后面大家可以喂给AI或者上网搜索一下,有很多比如野指针、指针悬垂等等情况这个公司好像还挺看重指针这个东西的。

4. 编程题

(这个我是真懵逼了,我以为会是对于嵌入式接口或者通信协议的知识,即使是代码题也会是对某个模块的开发,但是他给了如下题目)

补全函数:注意只能使用C标准库,不能使用网络编程扩展库函数。

//函数识别输入的字符串是域名/IP是否合规进行判断
// Parameters
// 1) const char *input 域名或IP地址字符串
// 2) unsigned char *out 输出转换后的内容

// Return Value :1:域名 ,0:IP地址,1:输出字符串为空,2:输入字符串不合规则。

//例1:char *input ="www.wang.com",Return Value 返回 1,输入out指针指向内容"www.wang.com”

//例2:char *input =”120.24.97.74",Return Value 返回0,输入out 指针指向内容 (0x78,0x18, 0x61, 0x44)

//如3: char *input =” 120.24.97.74.2”,Return Value返回-2,输入out指针指向内容[“”]

//补全以下代码
int domainName_Or_Identification(const char *input , unsigned char *out)
{

}

有没有会做的C语言大佬,做了之后可以评论我一下我来参考学习!

以上就是博主的所有问题,可能因为不是很正式的原因问的比较少,后续有其他面试或者笔试问题博主也会一并发出来和大家分享,关注认准博主主页专栏《面试笔试那点事》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值