深信服电话面试记录

C语言内存分配的方式

malloc

malloc在哪申请内存分配

动态存储区

malloc如何释放分配的内存

通过free()函数

如果防止内存泄漏(内存泄漏的场景)
  • 内存分配未成功,就开始使用
    解决办法是在使用内存之前检查指针是否为空。
    如果*p是函数的一个参数,那么在函数的入口处用assert(p!=NULL),(头文件是assert.h)进行检查
    如果是用malloc或new来申请内存,应该用if(p!==NULL)来进行防错处理
  • 内存分配成功,但是尚未初始化就开始使用
    两个原因:一是没有初始化的概念,二是误认为内存的缺省初值全为0,导致引用初值错误(数组)
  • 内存分配成功并且已经初始化,但内存越界
  • 忘记释放内存,造成内存泄漏
    含有这种错误的函数每被调用一次就会丢失一块内存
频繁释放内存会导致什么

可能会导致内存申请不成功,或者释放不成功,进而造成内存泄漏

const使用场景

可以用来修饰变量,数组,结构体
作用是以const关键字声明的对象,其值不能通过赋值或递增,递减来修改

数组和链表的区别

数组:查询简单,增删困难,查询时时间复杂度是O(1),需要提前确认大小
链表:增删简单,查询困难,查询时时间复杂度是O(n),不需要提前确认大小

栈和队列的区别

栈:先进后出,插入和删除元素时从栈顶开始
队列:先进先出,插入时从尾部插入,删除时从头部开始

如何用两个栈组成一个链表

参考:https://blog.csdn.net/dangzhangjing97/article/details/81477192

关于C语言内存对齐的问题

C语言内存地址对齐

都知道哪些抓包工具

参考: https://blog.csdn.net/gufenchen/article/details/90895856

如何查看Linux内存

free -m

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值