自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

huangbo201102的专栏

IT技术知识交流与探讨

  • 博客(14)
  • 资源 (4)
  • 收藏
  • 关注

原创 动态内存分配(2)

malloc(0)的理解1、首先来解释malloc(0)的问题,这个语法是对的,而且确实也分配了内存,但是内存空间是0,就是说返回给你的指针是不能用的,感觉奇怪吧?但是从操作系统的原理来解释就不奇怪了,这要涉及操作系统维护内存的方法来说了,在内存管理中,内存被分为2部分,栈和堆,栈有自己的机器指令,是一个先进后出的数据结构,我就在这里不再过多解释了,malloc分配的内存是堆内存,由于堆没有自

2014-01-24 14:13:08 667

转载 嵌入式c语言面试题精选

1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计

2014-01-23 16:48:46 849

转载 C中的volatile用法

C中的volatile用法volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 例如: volatile int i=10; int j = i

2014-01-23 15:35:04 531

原创 删除一个字符串中相同字符

/*已知一个字符串,如str[20]="abcdaabcefgab",要求编程实现删除这个字符串中重复部分的字符,如该字符串删除重复的字符后应该是str[20]="abcdefg".*/#include int main(int argc,char *argv[]){char s[200];int count[127]={0};int i,k=0;pri

2014-01-20 18:59:16 1207

原创 指针详解(4)

一、指针类型转换当我们初始化一个指针或给一个指针赋值时,赋值号的左边是一个指针,赋值号的右边是一个指针表达式。在我们前面所举的例子中,绝大多数情况下,指针的类型和指针表达式的类型是一样的,指针所指向的类型和指针表达式所指向的类型是一样的。例一:float f=12.3;float *fptr=&f;int *p;在上面的例子中,假如我们想让指针 p 指向实数 f,应该怎么办

2014-01-20 18:15:12 669

原创 指针详解(3)

一、数组和指针的关系数组的数组名其实可以看作一个指针。看下例:例一:intarray[10]={0,1,2,3,4,5,6,7,8,9},value;value=array[0];value=array[3];value=array[4];//也可写成:value=*array; 也可写成:value=*(array+3); 也可写成:value=*(array+4);

2014-01-20 18:02:48 701

原创 指针详解(2)

一、运算符&和*这里&是取地址运算符,*是间接运算符。&a 的运算结果是一个指针,指针的类型是 a 的类型加个*,指针所指向的类型是 a 的类型,指针所指向的地址嘛,那就是 a 的地址。*p 的运算结果就五花八门了。总之*p 的结果是 p 所指向的东西,这个东西有这些特点:它的类型是 p 指向的类型,它所占用的地址是 p所指向的地址。例一:int a=12; int b;p

2014-01-20 16:43:30 618

原创 指针详解(1)

指针的复杂类型,一般会出现很多运算符,他们像普通表达式一样有优先级,其优先级和运算符一样,其原则:从变量名处起,根据运算符优先级结合,一步步分析。例如int p;//这是一个普通的整型变量int *p;//首先从 P 处开始,先与*结合,所以说明 P 是一个指针,然后再与 int 结合,说明指针所指向的内容的类型为 int 型.所以 P 是一个返回整型数据的指针int 

2014-01-20 16:22:45 724

原创 ubuntu12.04 TFTP配置

ubuntu 12.04搭建tftp服务器的安装、设置、调试安装服务安装tftp-hpa   tftpd-hpa  xinetd# apt-get install tftp-hpa tftpd-hpa xinetd 在根目录创建文件夹/tftpboot  #mkdir /tftpboot#chmod -R 777 /tftpboot

2014-01-20 14:24:42 924

原创 ubuntu下NFS配置

#sudo apt-get install nfs-kernel-serverubuntu12.04中的已经是最新版本了,无需安装打开/etc/exports文件,在末尾加入:/home/farsight *(rw,sync,no_root_squash)注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定义,各字段含义如下:/home/f

2014-01-20 11:35:08 732

转载 浮点数在内存中的存储方式

浮点数保存的字节格式如下:地址        +0          +1           +2           +3内容    SEEE EEEE   EMMM MMMM    MMMM MMMM    MMMM MMMM这里S 代表符号位,1是负,0是正E 偏移127的幂,二进制阶码=(EEEEEEEE)-127。M 24位的尾数保存在23位中,只存储2

2014-01-16 19:18:35 810

转载 C语言内存分配时的栈和堆

1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值(函数参数值从右向左依次压入栈中),局部变量的值等。其操作方式类似于数据结构中的栈。内存中的栈区处于相对较高的地址以地址的增长方向为上的话,栈地址是向下增长的。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。堆区是向上增长的

2014-01-16 19:09:16 868

转载 gets函数的漏洞

gets函数的漏洞gets函数和fgets函数最大的不同是gets函数的缓冲区虽然由用户提供,但是用户无法指定其一次最多读入多少字节的内容。这一点导致gets变成了一个非常危险的函数。下例演示了gets函数的危险性。该程序定义了一个缓冲区,但是使用gets函数接收用户输入的字符串时却会出现问题。(1)在vi编辑器中编辑该程序如下:程序清单21-5 risk.c 利用

2014-01-16 18:58:45 4262

原创 c语言中的动态内存分配

动态内存分配是在堆上开辟空间,当我们用malloc分配一个空间得到空间返回地址,而当我们想扩大空间时,用realloc返回的地址却不一定是原来的地址,这牵涉到内存的分页问题,例如:  1 #include   2 #include   3 #include  4 void main()  5 {  6    char *p1,*p2;  7         p1=(ch

2014-01-14 14:17:44 708

fastDFS分布式文件系统安装包集合

fastDFS分布式文件系统安装包集合

2017-08-30

HTML5 Canvas核心编程

HTML5 Canvas核心编程 图形 动画

2017-08-03

sublimeText javascript插件

sublimeText javascript插件

2016-11-10

MP3音乐播放器源码

用c语言实现,开发出的mp3播放器,占用资源小,实用性强

2013-06-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除