heap随机分配不定长度的内存,GC内存回收

解决方案 »

  1.   

    GC就是要让开发人员从这里面解放出来,面试人员却非要把人往这里面推,这是何苦来哉,10个C#程序员9.5个不会自己去写unsafe代码
      

  2.   

    不知道对方是问你.net知识,还是“操作系统原理”知识?如果是后者,那么是一个很正规的试题,你可以随便回答“堆和栈的区别”,对于学生来说也很合适(因为学生没有什么本事,就是会做单元考试题,考试题都是书本上固定的背诵的那点儿)。通常面试官应该会“引导”你的。如果没有给你更多的提示,就是问你能不能背诵死概念,那么就算了,别费劲揣摩人家“想要的”是什么了。
      

  3.   

    Heap先进先出,举个例子我们搞C的程序猿
    一般需要在进程堆中分配内存,通常会用到
    HeapAlloc,这个堆中可以做的事情有很多
    比如我们动态注入ARM汇编码,在动态去
    Call它,可以使用_asm代码段,不过一般
    是采用CallWindowProc去Call这一块内存堆与栈相同,但又不相同,为什么这样说?
    堆是不受到保护的内存区域,而栈会受到
    保护,当然我们可以设置堆中某块内存的
    保护状态,那么堆便可以理解为栈,实际上
    两个本质上是一样的,只是作用域不一样修改某块内存的保护状态我们一般是采用
    VirtualProtect函数来设置,这个函数用得
    也比较多,比如把外挂,木马之类的软件