2012年6月25日

内存管理内幕

摘要: 动态分配的选择、折衷和实现Jonathan Bartlett (johnnyb@eskimo.com), 技术总监, New Media Worx本文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半手工地管理内存,以及如何使用垃圾收集自动管理内存。好文章收藏! 原文地址:http://www.ibm.com/developerworks/cn/linux/l-memory/为什么必须管理内存内存管理是计算机编程最为基本的领域之一。在很多 阅读全文

posted @ 2012-06-25 22:16 c语言源码 阅读(244) 评论(0) 推荐(0) 编辑

调试程序时在不中断程序的情况下输出函数调用信息(Mac OS,Linux & Windows)

摘要: 转载请注明出处:http://blog.csdn.net/horkychen有时在查找问题时,不想中断程序运行就输出一下某个条件下的函数执行顺序可以帮助定位问题。在Xcode下可以编辑断点设置中的Action设为Debugger Command, 如果你使用GDB作为调试器(项目设置),然后输入backtrace如下:记得勾选"Automatically continue after evaluating", 这样程序就不会停在这个断点,而是继续执行下去。运行结果:#0 a (i=5) at /xxxx/TestBacktrace/main.c:20#1 0x0000000 阅读全文

posted @ 2012-06-25 21:54 c语言源码 阅读(239) 评论(0) 推荐(0) 编辑

C#基础知识整理:基础知识(4) 继承

摘要: 前面提到过,面向对象的三大特性:封装性、继承性和多态性。封装在前面类的定义里也了解的差不多透彻了,现在看看继承的特性。继承实际是一个类对另一个类的扩展,后者称之为基类,前者称之为子类。继承就是子类拥有基类的一切属性和方法,子类还可以增加属性和方法。但是子类不能去掉父类的属性和方法。 当然这里还要提到修饰符的问题,子类拥有基类的所有属性和方法,不意味着子类可以任意访问继承的这些属性和方法。子类只能访问到public和protected修饰的属性和方法,其余无法直接访问。还有一个就是static的属性和方法是不能被继承下来的,因为静态类型之和类有关系与对象无关。看代码:using System;. 阅读全文

posted @ 2012-06-25 15:38 c语言源码 阅读(211) 评论(0) 推荐(0) 编辑

HDOJ 1024 Max Sum Plus Plus

摘要: 点击打开链接 http://acm.hdu.edu.cn/showproblem.php?pid=1024思路:利用动态规划的方法,求解最大m子段的和,由于这一题的数据量很大,所以不能用二维的dp 方 程,考虑优化 用一个temp[1000005]来存储前j个元素的i个子段的最大和,则有dp[j]=max(dp[j-1]+s[j],temp[j-1]]+s[j]) 表示以s[j]结尾的元素的最大的子段和注意:输入数据很多使用scanf代码:#include <iostream>#include <algorithm>#include <map>#includ 阅读全文

posted @ 2012-06-25 12:48 c语言源码 阅读(174) 评论(0) 推荐(0) 编辑

HDOJ 1075 (What Are You Talking About)

摘要: 点击打开链接 http://acm.hdu.edu.cn/showproblem.php?pid=1075思路:利用字典树+map ,但是也可以直接利用map来写,用string不要用char注意:这组数据 START dog aa END START a aa END输出:a dog代码(字典树+map):#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <cstdlib>#include <map>using 阅读全文

posted @ 2012-06-25 10:57 c语言源码 阅读(195) 评论(0) 推荐(0) 编辑

导航