C/C++内存管理 笔记
摘要:内存管理是个比较复杂的东西,我这里记录一些比较重要的笔记。 0.永远保持谦虚的态度来使用指针和操作内存。 1.在用free释放内存后,要记得将指针赋值为NULL,防止产生"野指针"。 2.尽量不要用指针指向常量字符串。看一个小例子:char *p="abcde";p[0]='m';std::cout<<p<<std::endl; 用gcc编译会出现警告:warning: deprecated conversion from string constant to ‘char*’.然后试着运行本程序,会出现:bus e
阅读全文
posted @
2013-03-30 08:56
NeilHappy
阅读(683)
推荐(0)
二叉树的非递归遍历-----2013年3月20日
摘要:二叉树的递归遍历算法非常漂亮和易读,但是非递归算法就没那么容易懂了,尤其是后序遍历的非递归算法。一. 前序遍历 1 void PreOrderTraverse(Node *root) 2 { 3 stack<Node *> ns; 4 Node *n=root; 5 while(n!=NULL || !ns.empty()) 6 { 7 if(n!=NULL) 8 { 9 print(n); 10 ns.push(n);11 n=n->pLeft;...
阅读全文
posted @
2013-03-20 17:08
NeilHappy
阅读(330)
推荐(1)
僵尸进程
摘要:僵尸进程就是父进程fork之后并没有wait子进程。在子进程退出的时候,内核释放该进程所有的资源,比如文件描述符,内存,等等,但是依然为该进程保留一定的信息,只有该进程的父进程wait之后才会释放掉这些保留的信息。如果父进程没有wait,那么子进程就变成了僵尸进程。在高并发的服务器中,僵尸进程会有很大的危害。如果僵尸进程过多,那么就会有大量的进程号被僵尸进程占用,但是系统所能使用的进程是有限的。如果僵尸进程多到连新进程的进程号都没法提供,那么服务器就会一直处于拒绝状态了。 但是高并发服务器的父进程肯定会fork许多子进程,而且有可能父进程不需要知道任何子进程的结束信息,如果还wait每个...
阅读全文
posted @
2013-03-12 19:02
NeilHappy
阅读(387)
推荐(0)
unpV1的源码的使用方法
摘要:正准备把unpV1再看一遍,但是居然把unp的编译方法给忘记了。查了查资料,才弄好。这就是以前没有养成做笔记的习惯所带来的后果了,浪费了20分钟时间。现在把unpV1源码的使用方法记录下来: 1. 编译静态库并复制到/usr/lib和/usr/lib64.cd libmakecd ..sudo cp libunp.a /usr/libsudo cp libunp.a /usr/lib64 2.修改unp.h#include "../config.h" 的../去掉,即#include "config.h"加上#define MAX_LINE 2048注
阅读全文
posted @
2013-03-12 14:55
NeilHappy
阅读(1006)
推荐(0)
read 与 fread 的区别的误解(转载)
摘要:原文地址:http://blog.sina.com.cn/s/blog_93b45b0f01014qyb.html前多时间梳理了一些Linux上的编程,其实就是认识的大量的系统调用(POSIX)。这里有一个我们经常提出的问题就是fread,read的区别。(当然这两个分别代表了操作文件系统的两套不同的函数,包括open,read, write, seek等)。我们都知道,他们的区别就是一个(read)是UNIX 中的系统调用,是类UNIX系统,提供给程序员操作文件的接口(要不然你如何操作文件?);而另外一个则是C语言提供的读取文件的函数库,自然这个函数库(ANSI)的实现是以对应的系统调用为基
阅读全文
posted @
2013-03-12 13:31
NeilHappy
阅读(5032)
推荐(0)
git的基本使用方法(备忘)
摘要:今天终于下定决心学习git,用git来管理项目。这里我仅仅使用了git最简单和基本的功能,步骤如下: 1.在github上创建一个repository. 2.克隆代码库。用git clone + 该仓库的地址。 3.添加一个文件,将其提交并且推送到服务器上。vim test.py git add test.py git commit -m "add test.py"git push -u origin master 4.git add . 添加当前目录下所有文件(包括目录)。
阅读全文
posted @
2013-03-02 20:44
NeilHappy
阅读(459)
推荐(0)
解决Mac下用virtualbox虚拟win7网速慢的问题
摘要:记在这里,备忘。 将virtualbox的网络连接方式从NAT改成桥接就可以了。
阅读全文
posted @
2013-03-01 14:01
NeilHappy
阅读(1106)
推荐(0)