上一页 1 ··· 44 45 46 47 48 49 50 51 52 ··· 58 下一页
  2012年12月21日
摘要: realloc invalid pointer错误char* temp=(char*) realloc(src,sizeof(char)*100);如上面这行代码,可能会出现标题中的错误。错误原因是因为src指向的不是NULL或堆中的地址。具体的就是realloc函数要求src为下面两种情况1.src==NULL2.src指针必须是malloc(), calloc(), 或realloc()分配的造成错误的代码造成错误的代码一般是如下形式是char* src="Hello world!";//错误代码或者char src[100];//错误代码上面这两种方式分配内存位于栈区 阅读全文
posted @ 2012-12-21 13:36 猿人谷 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?方案1: 可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。s 遍历文件a,对每个url求取,然后根据所取得的值将url分别存储到1000个小文件(记为)中。这样每个小文件的大约为300M。s 遍历文件b,采取和a相同的方式将url分别存储到1000各小文件(记为)。这样处理后,所有可能相同的url都在对应的小文件()中,不对应的小文件不可能有相同的url。然后我们只要求出1000对 阅读全文
posted @ 2012-12-21 09:09 猿人谷 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 一、Linux服务器上11种网络连接状态: 图:TCP的状态机通常情况下,一个正常的TCP连接,都会有三个阶段:1、TCP三次握手; 2、数据传送; 3、TCP四次挥手注:以下说明最好能结合”图:TCP的状态机”来理解。SYN: (同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握手建立TCP连接时有效。表示一个新的TCP连接请求。ACK: (确认编号,Acknowledgement Number)是对TCP请求的确认标志,同时提示对端系统已经成功接收所有数据。FIN: (结束标志,FINish)用来结束一个TCP回话.但对应端口仍处于开放状态,准备接.. 阅读全文
posted @ 2012-12-21 09:07 猿人谷 阅读(1067) 评论(0) 推荐(0) 编辑
摘要: assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include <assert.h>void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:#include <stdio.h>#include <assert.h>#include <stdlib.h>int main( v 阅读全文
posted @ 2012-12-21 09:06 猿人谷 阅读(271) 评论(0) 推荐(0) 编辑
  2012年12月18日
摘要: 解释器是比较深入的内容。虽然我试图从最基本的原理讲起,尽量让这篇文章不依赖于其它的知识,但是这篇教程并不是针对函数式编程的入门,所以我假设你已经学会了最基本的 Scheme 和函数式编程。如果你完全不了解这些,可以读一下 SICP的第一,二章。当然你也可以继续读这篇文章,有不懂的地方再去查资料。我在这里也会讲递归和模式匹配的原理。如果你已经了解这些东西,这里的内容也许可以加深你的理解。解释器其实不是很难的东西,可是好多人都不会写,因为在他们心目中解释器就像一个 Python 解释器那样复杂。如果你想开头就写一个Python解释器,那你多半永远也写不出来。你必须从最简单的语言开始,逐步增加语言的 阅读全文
posted @ 2012-12-18 14:02 猿人谷 阅读(505) 评论(0) 推荐(0) 编辑
摘要: 使用过新浪博客的人都知道,新浪博客的首页有访问量统计功能,迁移到博客园之后发现博客 园却没有这项功能,所幸博客园在后台管理的设置选项中有一个公告栏和设置页首页脚代码功能,使用起来非常灵活和方便。借此我们可以通过网络上提过的其他强 大的插件来为获取更加详细的访问统计信息(博客园这难道是借鉴了传统unix中“一个软件工具只做好一件事”的设计原则吗~~^_^),本教程所使用的方 法对于其他提供类似公告栏机制的任何网络页面都适用,而不仅仅限于博客园,以下为详细步骤:1. 如果你想在博客园的首页显示你的访问数据,可以采用以下方法: 1)flagcounter.com:进入这个网站,然后根据首页的自定义. 阅读全文
posted @ 2012-12-18 13:37 猿人谷 阅读(1980) 评论(0) 推荐(0) 编辑
  2012年12月17日
摘要: 开篇在实际的过程中,总需要对一些数据进行排序,在众多的排序算法中,快速排序是较为常用的排序算法之一。而网上对于快速排序的中文资料还不是很全。写 这篇博文主要记录一些自己对于快速排序的了解,以及对快速排序的性能的分析。我将在这里记录下我对快速排序的认识和学习过程 ,用尽可能简单明了的叙述来阐述我的理解。快速排序基于算法中很重要的思想是 分治。所以会先介绍一下分治思想,然后对算法原理进行介绍,接着会分析算法的性能并对算法作进一步的讨论。注:为了便于说明问题,本博文中会用到部分《introduction to algorithm》中的图片。关键词:快速排序、分治、递归“大事化小”——从分治说起分治? 阅读全文
posted @ 2012-12-17 13:56 猿人谷 阅读(341) 评论(1) 推荐(0) 编辑
摘要: 开篇上一篇博文对缓存的思考——提高命中率详细介绍了高速缓存的组织结构,并通过实例说详细明了cpu从高速缓存中取数据的过程,对于缓存的工作机制应该有了清晰的认识。这篇博文就来简单讨论以下对于缓存在实际开发中的应用,这里将告诉你如何让你的程序充分利用该缓存,即如何编写高速缓存友好的代码。提示:如果高速缓存的运行机制还没有清晰的认识,请参照前面文章。注1:关于文中提到的局部性的相关知识参照:局部性原理浅析——良好代码的基本素质注2:这是一个系列的文章,收录在程序性能优化注3:文章知识有些地方不容易理解,所以用心才能看完噢。“用空间换时间”在搞算法的时候经常能听到这种说法,算法研究中通常要考虑算法的时 阅读全文
posted @ 2012-12-17 13:50 猿人谷 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 开篇编写高效的程序并不只在于算法的精巧,还应该考虑到计算机内部的组织结构,cpu微指令的执行,缓存的组织和工作原理等。好的算法在实际中不见得有高效率,如果完全没有考虑缓存、微指令实现的话。前两篇博文局部性原理浅析介绍了程序的局部性原理,如何写出局部性良好代码。提高程序性能、何为缓存讨论了存储器层次结构,计算机内部的存储结构、缓存的概念,简单的介绍了缓存的工作机制。建议先阅读前两篇博文,虽然他们之间联系不大,在前面也有一些对本文的铺垫。而且,这是一个系列的文章。旨在优化程序性能。这篇博文主要介绍的是缓存的组织、工作原理。拨开迷雾,让你更加清晰的认识缓存。通用缓存结构回顾在提高程序性能、何为缓存中 阅读全文
posted @ 2012-12-17 13:49 猿人谷 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 开篇学习任何一门编程语言,都会从hello world 开始。对于一门从未接触过的语言,在短时间内我们都能用这种语言写出它的hello world。然而,对于hello world 这个简单程序的内部运行机制,我相信还有很多人都不是很清楚。hello world 这些信息是如何通显示器过显示的?cpu执行的代码和程序中我们写的的代码肯定不一样,她是什么样子的?又是如何从我们写的代码变成cpu能执行的代码的?程序运行时代码是在什么地方?她们是如何组织的?程序中的变量存储在什么地方?函数调用是怎样是现的?这篇文章将简单的讨论程序的运行机制开发平台隐藏的过程每 一种语言都有自己的开发平台,我们的程序 阅读全文
posted @ 2012-12-17 13:47 猿人谷 阅读(328) 评论(0) 推荐(0) 编辑
上一页 1 ··· 44 45 46 47 48 49 50 51 52 ··· 58 下一页