博客园  :: 首页  :: 新随笔  :: 管理

2013年11月8日

摘要: 题目:void GetMemory(char *p){p = (char *)malloc(100);}void Test(void){char *str = NULL;GetMemory(str);strcpy(str, "hello world");printf(str);}请问运行Test 函数会有什么样的结果?分析:程序崩溃。因为GetMemory 并不能传递动态内存,Test 函数中的 str 一直都是 NULL。strcpy(str, "hello world");将使程序崩溃。题目:char *GetMemory(void){char p[ 阅读全文

posted @ 2013-11-08 11:03 zhangyuxiu 阅读(598) 评论(0) 推荐(0) 编辑

2013年8月24日

摘要: 1. 通常PHP 连接 Mysql 数据库都是需要通过root 用户名和密码连接的,默认情况下,在Mysql安装时root初始密码为空,在安装使用PHP开源系统如CI的时候,都需要填写连接Mysql数据库的用户名和密码,如果此时你忘记了Mysql 的 root 密码或没有设置Mysql 的root密码时,就必须要修改或设置Mysql的root密码。2. 如何修改Mysql的root密码?在所有数据库中,有一个叫mysql的数据库,其中有一个user的数据表,该表存储了本机的所有用户名和密码。我们可以通过修改user 表来修改root密码:mysql> update user set pa 阅读全文

posted @ 2013-08-24 16:41 zhangyuxiu 阅读(651) 评论(0) 推荐(0) 编辑

2013年6月7日

摘要: 一、二、 阅读全文

posted @ 2013-06-07 16:56 zhangyuxiu 阅读(107) 评论(0) 推荐(0) 编辑

2013年6月4日

摘要: 1 #include<iostream> 2 using namespace std; 3 void swap(int &a, int &b) 4 { 5 int temp = a; 6 a = b; 7 b = temp; 8 } 9 int partition(int a[],int begin,int end)10 {11 int low,high,key;12 low = begin;13 high = end;14 key = a[low];15 while(low < high)16 {17 ... 阅读全文

posted @ 2013-06-04 15:09 zhangyuxiu 阅读(417) 评论(0) 推荐(0) 编辑

摘要: 一、分析平衡二叉查找树有什么意义? 平衡二叉查找树是对二叉查找树的改进,那二叉查找树哪些地方是不尽人意的呢?在分析二叉查找树的平均查找长度时,会发现:二叉查找树的平均查找长度与二叉查找树的形态有关系,最坏的情况是退化为链表,查找变为线性查找,平均查找长度为(n+1)/2。最好的情况就是树的形态与折半查找的判断树形式。平均查找长度为logN。 平衡二叉树就是为了保证树的形态向“树”的方向走。避免了二叉查找树退化为链表的可能。从而提高了查找效率。其实平衡二叉查找树与二叉查找树的区别并不是很大,平衡树在“改变”树的时候会维护树的形态,“改变”无非就两种,插入节点和删除节点,而树的查找只“读”了... 阅读全文

posted @ 2013-06-04 11:51 zhangyuxiu 阅读(549) 评论(0) 推荐(0) 编辑

2013年5月12日

摘要: 原理: 字符串查找算法中,最著名的两个是KMP算法和BM算法。两个算法在最坏情况下均具有线性的查找时间。但是在实际应用中,KMP算法并不比最简单的C库函数strstr()快多少,而BM算法则往往比KMP算法快上3-5倍。下面介绍一种比BM算法更快的查找算法——Sunday算法。 Sunday算法思想和BM算法类似,只不过Sunday算法是从前往后匹配,在匹配失败时关注的是:源串中参与匹配的最末位字符的下一位字符。如果该字符没有在匹配串中出现则直接跳过,移动步长=匹配串长度+1;否则,其移动步长=匹配串中最右端的该字符到末尾的距离+1。#include <iostream>#incl 阅读全文

posted @ 2013-05-12 10:49 zhangyuxiu 阅读(1051) 评论(0) 推荐(0) 编辑

2013年4月14日

摘要: static_cast 编译器在编译期间检查,用于在内置数据类型之间的转化,或者在同一个继承体系内部转来转去。dynamic_cast 只能应用于指针和引用,不能用于内置数据类型之间的转化。在运行期间会检查这个转化是否可行。可以完成类结构层次的提升。 dynamic_cast<T*>(a) 将a值转换为类型为T的对象指针。如果类型T不是a的某个基类型,该操作将返回一个空指针。 它不仅仅像static_cast那样,检查转换前后的两个指针是否属于同一个继承树,它还要检查被指针引用的对象的实际类型,确定转换是否可行。如果这两个指针间不能转换,转换就会失败,此时返回空指针(NULL)。c 阅读全文

posted @ 2013-04-14 23:11 zhangyuxiu 阅读(193) 评论(0) 推荐(0) 编辑

2013年4月13日

摘要: 1. delete 用于释放 new 分配的空间;free 用来释放 malloc 分配的空间2. delete [] 用于释放 new [] 分配的空间3. delete 释放空间的时候会调用 相应的析构函数 同时,new时调用构造函数,而malloc不会,它只是分配内存。4. 调用free 之前需要检查 需要释放的指针是否为空,使用delete 释放内存则不需要检查指针是否为NULL5.malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 (?)对于非内部数据类型的对象而言,光用malloc/free无法满足动态对. 阅读全文

posted @ 2013-04-13 21:57 zhangyuxiu 阅读(547) 评论(2) 推荐(0) 编辑

摘要: 1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节 阅读全文

posted @ 2013-04-13 20:46 zhangyuxiu 阅读(206) 评论(0) 推荐(0) 编辑