摘要: 我一直回避程序的内存管理,因为爱之愈深,恨之愈烈。但是,还是由很多的朋友一直在体这方面的问题,所以就索性把它坦白了,也许对你我都是一件好事情。 首先,需要搞清楚:变量的类型和它的存储类别是两个概念。 数据类型和内存管理没有直接的关系。 一、由C/C++编译的程序占用的内存分为以下几个部分: 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方... 阅读全文
posted @ 2012-05-08 15:24 Mr.Rico 阅读(277) 评论(1) 推荐(0)
摘要: 很多人误以为shell脚本只能在命令行下使用。其实shell也可以调用一些GUI组件,例如菜单,警告框,进度条等等。你可以控制最终的输出,光标位 置还有各种输出效果。下面我将介绍一些工具,帮助你创建强大的,互动的,用户友好的 Unix/Linux shell脚本。我在FreeBSD和Linux下测试过这些工具,不过其他UNIX系列的操作系统应该都支持的。 1. notify-send 命令 这个命令可以让你通过通知进程发送一个桌面通知给用户。这可以用来向用户发送提示,或者显示一些信息而不用打断用户工作。你需要安装如下软件包: $ sudo apt-get install ... 阅读全文
posted @ 2012-05-08 14:23 Mr.Rico 阅读(636) 评论(0) 推荐(0)
摘要: 使用Memoization,以避免递归重复计算考虑Fibonacci(斐波那契)问题;Fibonacci问题是可以通过简单的递归方法来解决:intfib(n){if(n==0||n==1){return1;}else{returnfib(n-2)+fib(n-1);}}注:在这里,我们考虑Fibonacci 系列从1开始,因此,该系列看起来:1,1,2,3,5,8,... 注意:从递归树,我们计算fib(3)函数2次,fib(2)函数3次。这是相同函数的重复计算。如果n非常大,fib这个简单的技术叫做Memoization,可以被用在递归,加强计算速度。fibonacci 函数Memoizat 阅读全文
posted @ 2012-05-08 10:39 Mr.Rico 阅读(4510) 评论(0) 推荐(0)