2013百度笔试面试剖析(连载)

C/C++中动态分配内存和释放内存的联系和区别

即malloc/free 和 new/delete的联系和区别

联系:

它们分配的内存都是在堆,都需要free或者detele释放内存,而且malloc free 以及new delete 都是配套使用的

其次,如果不释放内存,那么都会发生内存泄露~这里简要介绍一下内存泄露吧~

内存泄露就是程序猿申请了内存了,但是没有释放掉~于是这块内存就不能用了~~


区别:

malloc·free是C语言的函数,而new delete是操作符

malloc·free返回的是void类型的指针

而new delete返回的是指明类型的指针

malloc之后,没有初始化

而new之后,是初始化了的

 

进程和线程的联系和区别

这个题目已经考了无数次了~尽管如此,但老是忘记

一个程序至少拥有一个进程 一个进程至少拥有一个线程

多线程的意义在于,可以并发性高~因为切换进程,效率太低~

进程拥有资源的调度权利~拥有内存~而多个线程共用内存~

这里提到的共享内存~可以做一点补充,刚刚通过百度~猛然发现以前的概念是错误的~

所谓的共享内存~实际上确实会提高效率~

例如进程A和进程B共享一块物理内存之后,A对B的数据读写以及数据更新都是即时可见的,反之亦然~所以提高读写的效率~只是在读写时需要某种同步机制,例如互斥或者信号量

进程拥有独立的地址空间,当一个进程挂掉之后~不会影响其他进程运行

而如果一个线程挂掉~那么这个进程就挂掉了~

那么看官会说,那么就考虑多进程吧~

可是,切换一个进程,是费资源的,效率低~



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值